Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.crypto.params
Class Argon2Parameters

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

public class Argon2Parameters
extends java.lang.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();

Nested Class Summary
`static class` | `Argon2Parameters.Builder` Fluent builder for `Argon2Parameters`.

Field Summary
`static int` | `ARGON2_d` Argon2d - data-dependent memory access.
`static int` | `ARGON2_i` Argon2i - data-independent memory access.
`static int` | `ARGON2_id` Argon2id - hybrid of `ARGON2_i` and `ARGON2_d`.
`static int` | `ARGON2_VERSION_10` Argon2 v1.0 (legacy).
`static int` | `ARGON2_VERSION_13` Argon2 v1.3 - the version standardised by RFC 9106.
`static java.lang.String` | `MAX_MEMORY_EXP` System/security property setting the maximum permitted memory exponent (i.e.
`static java.lang.String` | `MAX_PARALLELISM` System/security property bounding the Argon2 parallelism (lanes) accepted when a key is derived from untrusted cost parameters - notably an OpenPGP Argon2 S2K specifier.
`static java.lang.String` | `MAX_PASSES` System/security property bounding the number of Argon2 passes (iterations) accepted when a key is derived from untrusted cost parameters - notably an OpenPGP Argon2 S2K specifier.

Method Summary
`void` | `clear()` Zeroise sensitive state (salt, secret, additional) held by these parameters.
`byte[]` | `getAdditional()`
`Argon2BytesGenerator.BlockPool` | `getBlockPool()`
`CharToByteConverter` | `getCharToByteConverter()`
`int` | `getIterations()`
`int` | `getLanes()`
`int` | `getMemory()`
`byte[]` | `getSalt()`
`byte[]` | `getSecret()`
`int` | `getType()`
`int` | `getVersion()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MAX_MEMORY_EXP

    public static final java.lang.String MAX_MEMORY_EXP

  System/security property setting the maximum permitted memory exponent (i.e. ). Defaults to 24 (16 GiB); the property may be raised up to a ceiling of 30. The default was lowered from the historical 30 (1 TiB) so that a single key derivation driven by attacker-chosen cost parameters - notably an OpenPGP Argon2 S2K specifier read from an unauthenticated packet - cannot exhaust the heap of a typical host.

  See Also:
    Constant Field Values

### MAX_PASSES

    public static final java.lang.String MAX_PASSES

  System/security property bounding the number of Argon2 passes (iterations) accepted when a key is derived from untrusted cost parameters - notably an OpenPGP Argon2 S2K specifier. Defaults to 10; OpenPGP key derivation rejects a larger value rather than spend unbounded CPU on attacker-chosen iterations. Read via `Properties.asInteger(java.lang.String, int)`.

  See Also:
    Constant Field Values

### MAX_PARALLELISM

    public static final java.lang.String MAX_PARALLELISM

  System/security property bounding the Argon2 parallelism (lanes) accepted when a key is derived from untrusted cost parameters - notably an OpenPGP Argon2 S2K specifier. Defaults to 16. Read via `Properties.asInteger(java.lang.String, int)`.

  See Also:
    Constant Field Values

### ARGON2_d

    public static final int ARGON2_d

  Argon2d - data-dependent memory access.

  See Also:
    Constant Field Values

### ARGON2_i

    public static final int ARGON2_i

  Argon2i - data-independent memory access.

  See Also:
    Constant Field Values

### ARGON2_id

    public static final int ARGON2_id

  Argon2id - hybrid of `ARGON2_i` and `ARGON2_d`.

  See Also:
    Constant Field Values

### ARGON2_VERSION_10

    public static final int ARGON2_VERSION_10

  Argon2 v1.0 (legacy).

  See Also:
    Constant Field Values

### ARGON2_VERSION_13

    public static final int ARGON2_VERSION_13

  Argon2 v1.3 - the version standardised by RFC 9106.

  See Also:
    Constant Field Values

Method Detail

### 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 passwords.

### getBlockPool

    public Argon2BytesGenerator.BlockPool getBlockPool()

  Returns:
    the user-supplied `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.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD