Bouncy Castle Cryptography Library 1.85

org.bouncycastle.crypto.params
Class Argon2Parameters.Builder

java.lang.Object
  extended byorg.bouncycastle.crypto.params.Argon2Parameters.Builder
Enclosing class:
Argon2Parameters

public static class Argon2Parameters.Builder
extends java.lang.Object

Fluent builder for Argon2Parameters.


Constructor Summary
Argon2Parameters.Builder()
          Create a builder defaulting to Argon2Parameters.ARGON2_i.
Argon2Parameters.Builder(int type)
          Create a builder for the given Argon2 variant.
 
Method Summary
 Argon2Parameters build()
          Construct an immutable Argon2Parameters from the current builder state.
 void clear()
          Zeroise sensitive state (salt, secret, additional) held by this builder.
 Argon2Parameters.Builder withAdditional(byte[] additional)
          Set the optional additional/associated data.
 Argon2Parameters.Builder withBlockPool(Argon2BytesGenerator.BlockPool blockPool)
          Provide a custom BlockPool for the generator to source its working blocks from.
 Argon2Parameters.Builder withCharToByteConverter(CharToByteConverter converter)
          Override the converter used to turn passwords into bytes.
 Argon2Parameters.Builder withIterations(int iterations)
          Set the number of passes (time cost).
 Argon2Parameters.Builder withMemoryAsKB(int memory)
          Set the memory cost expressed directly in KiB.
 Argon2Parameters.Builder withMemoryPowOfTwo(int memory)
          Set the memory cost as a power of two: the resulting memory in KiB is .
 Argon2Parameters.Builder withParallelism(int parallelism)
          Set the parallelism (number of lanes).
 Argon2Parameters.Builder withSalt(byte[] salt)
          Set the salt.
 Argon2Parameters.Builder withSecret(byte[] secret)
          Set the optional secret (key) value.
 Argon2Parameters.Builder withVersion(int version)
          Set the Argon2 version.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Argon2Parameters.Builder

public Argon2Parameters.Builder()
Create a builder defaulting to Argon2Parameters.ARGON2_i.


Argon2Parameters.Builder

public Argon2Parameters.Builder(int type)
Create a builder for the given Argon2 variant.

Parameters:
type - one of Argon2Parameters.ARGON2_d, Argon2Parameters.ARGON2_i, or Argon2Parameters.ARGON2_id.
Method Detail

withParallelism

public Argon2Parameters.Builder withParallelism(int parallelism)
Set the parallelism (number of lanes).

Parameters:
parallelism - the degree of parallelism, must be at least 1.
Returns:
this builder.

withSalt

public Argon2Parameters.Builder withSalt(byte[] salt)
Set the salt. The supplied array is defensively cloned.

Parameters:
salt - salt bytes; may be null.
Returns:
this builder.

withSecret

public Argon2Parameters.Builder withSecret(byte[] secret)
Set the optional secret (key) value. The supplied array is defensively cloned.

Parameters:
secret - secret bytes; may be null.
Returns:
this builder.

withAdditional

public Argon2Parameters.Builder withAdditional(byte[] additional)
Set the optional additional/associated data. The supplied array is defensively cloned.

Parameters:
additional - additional data bytes; may be null.
Returns:
this builder.

withIterations

public Argon2Parameters.Builder withIterations(int iterations)
Set the number of passes (time cost).

Parameters:
iterations - number of iterations, must be at least 1.
Returns:
this builder.

withMemoryAsKB

public Argon2Parameters.Builder withMemoryAsKB(int memory)
Set the memory cost expressed directly in KiB.

Parameters:
memory - memory in KiB; must be in .
Returns:
this builder.
Throws:
java.lang.IllegalArgumentException - if the value is out of range.

withMemoryPowOfTwo

public Argon2Parameters.Builder withMemoryPowOfTwo(int memory)
Set the memory cost as a power of two: the resulting memory in KiB is .

Parameters:
memory - exponent; must be in .
Returns:
this builder.
Throws:
java.lang.IllegalArgumentException - if the exponent is out of range.

withVersion

public Argon2Parameters.Builder withVersion(int version)
Set the Argon2 version.

Parameters:
version - one of Argon2Parameters.ARGON2_VERSION_10 or Argon2Parameters.ARGON2_VERSION_13.
Returns:
this builder.

withCharToByteConverter

public Argon2Parameters.Builder withCharToByteConverter(CharToByteConverter converter)
Override the converter used to turn passwords into bytes. Default is PasswordConverter.UTF8.

Parameters:
converter - the character-to-byte converter to use.
Returns:
this builder.

withBlockPool

public Argon2Parameters.Builder withBlockPool(Argon2BytesGenerator.BlockPool blockPool)
Provide a custom BlockPool for the generator to source its working blocks from. Useful in high-throughput scenarios where the cost of allocating fresh buffers per call dominates. If null (the default) the generator creates a per-call FixedBlockPool.


build

public Argon2Parameters build()
Construct an immutable Argon2Parameters from the current builder state.

Returns:
the configured parameters.

clear

public void clear()
Zeroise sensitive state (salt, secret, additional) held by this builder.


Bouncy Castle Cryptography Library 1.85