Bouncy Castle Cryptography Library 1.87

org.bouncycastle.crypto.generators
Class Argon2BytesGenerator

java.lang.Object
  extended byorg.bouncycastle.crypto.generators.Argon2BytesGenerator

public class Argon2BytesGenerator
extends java.lang.Object

Argon2 PBKDF - Based on the results of https://password-hashing.net/ and https://www.ietf.org/archive/id/draft-irtf-cfrg-argon2-03.txt


Nested Class Summary
static class Argon2BytesGenerator.Block
          A single 1024-byte memory block used by the Argon2 mixing function.
static interface Argon2BytesGenerator.BlockPool
          Strategy for allocating and recycling Argon2 Block objects.
static class Argon2BytesGenerator.FixedBlockPool
          Bounded pool that recycles up to Block objects.
 
Constructor Summary
Argon2BytesGenerator()
           
 
Method Summary
 int generateBytes(byte[] password, byte[] out)
           
 int generateBytes(byte[] password, byte[] out, int outOff, int outLen)
           
 int generateBytes(char[] password, byte[] out)
           
 int generateBytes(char[] password, byte[] out, int outOff, int outLen)
           
static int getBlockCount(int memory, int lanes)
          Return the number of Argon2BytesGenerator.Blocks a generator takes from its Argon2BytesGenerator.BlockPool for the given memory size and degree of parallelism: the primary memory, after the alignment Argon2 applies to it, plus the blocks the fill step works in.
 void init(Argon2Parameters parameters)
          Initialise the Argon2BytesGenerator from the parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Argon2BytesGenerator

public Argon2BytesGenerator()
Method Detail

init

public void init(Argon2Parameters parameters)
Initialise the Argon2BytesGenerator from the parameters.

Parameters:
parameters - Argon2 configuration.

getBlockCount

public static int getBlockCount(int memory,
                                int lanes)
Return the number of Argon2BytesGenerator.Blocks a generator takes from its Argon2BytesGenerator.BlockPool for the given memory size and degree of parallelism: the primary memory, after the alignment Argon2 applies to it, plus the blocks the fill step works in. This is the size to give a Argon2BytesGenerator.FixedBlockPool that is to recycle every block of a run - the alignment rules are an implementation detail and are not to be replicated by callers.

Parameters:
memory - the memory size in 1K blocks, as passed to Argon2Parameters.Builder#withMemoryAsKB(int).
lanes - the degree of parallelism, as passed to Argon2Parameters.Builder#withParallelism(int).
Returns:
the number of blocks a generator has outstanding at once.

generateBytes

public int generateBytes(char[] password,
                         byte[] out)

generateBytes

public int generateBytes(char[] password,
                         byte[] out,
                         int outOff,
                         int outLen)

generateBytes

public int generateBytes(byte[] password,
                         byte[] out)

generateBytes

public int generateBytes(byte[] password,
                         byte[] out,
                         int outOff,
                         int outLen)

Bouncy Castle Cryptography Library 1.87