Class Argon2Parameters

java.lang.Object
org.bouncycastle.crypto.params.Argon2Parameters

public class Argon2Parameters extends Object
Configuration parameters for the Argon2 PBKDF.

Build instances with Argon2Parameters.Builder, e.g.

 Argon2Parameters params = new Argon2Parameters.Builder(Argon2Parameters.ARGON2_id)
     .withVersion(Argon2Parameters.ARGON2_VERSION_13)
     .withSalt(salt)
     .withIterations(3)
     .withMemoryPowOfTwo(16)
     .withParallelism(4)
     .build();
 
  • Field Details

    • MAX_MEMORY_EXP

      public static final String MAX_MEMORY_EXP
      System/security property setting the maximum permitted memory exponent (i.e. memory <= 1 << MAX_MEMORY_EXP). Default and ceiling are 30.
      See Also:
    • ARGON2_d

      public static final int ARGON2_d
      Argon2d - data-dependent memory access.
      See Also:
    • ARGON2_i

      public static final int ARGON2_i
      Argon2i - data-independent memory access.
      See Also:
    • ARGON2_id

      public static final int ARGON2_id
      Argon2id - hybrid of ARGON2_i and ARGON2_d.
      See Also:
    • ARGON2_VERSION_10

      public static final int ARGON2_VERSION_10
      Argon2 v1.0 (legacy).
      See Also:
    • ARGON2_VERSION_13

      public static final int ARGON2_VERSION_13
      Argon2 v1.3 - the version standardised by RFC 9106.
      See Also:
  • Method Details

    • getSalt

      public byte[] getSalt()
      Returns:
      a defensive copy of the salt, or null if none was set.
    • getSecret

      public byte[] getSecret()
      Returns:
      a defensive copy of the secret value, or null if none was set.
    • getAdditional

      public byte[] getAdditional()
      Returns:
      a defensive copy of the additional data, or null if none was set.
    • getIterations

      public int getIterations()
      Returns:
      the number of passes (time cost).
    • getMemory

      public int getMemory()
      Returns:
      the memory cost in KiB.
    • getLanes

      public int getLanes()
      Returns:
      the parallelism (lane count).
    • getVersion

      public int getVersion()
      Returns:
      the Argon2 version constant (ARGON2_VERSION_10 or ARGON2_VERSION_13).
    • getType

      public int getType()
      Returns:
      the Argon2 variant constant (ARGON2_d, ARGON2_i, or ARGON2_id).
    • getCharToByteConverter

      public CharToByteConverter getCharToByteConverter()
      Returns:
      the character-to-byte converter used to encode char[] passwords.
    • getBlockPool

      public Argon2BytesGenerator.BlockPool getBlockPool()
      Returns:
      the user-supplied Argon2BytesGenerator.BlockPool, or null if the generator should use its default per-call pool.
    • clear

      public void clear()
      Zeroise sensitive state (salt, secret, additional) held by these parameters.