Package jadex.commons.security.random
Class ChaCha20Random
- java.lang.Object
 - 
- java.util.Random
 - 
- java.security.SecureRandom
 - 
- jadex.commons.security.random.ChaCha20Random
 
 
 
 
- 
- All Implemented Interfaces:
 java.io.Serializable
public class ChaCha20Random extends java.security.SecureRandom- See Also:
 - Serialized Form
 
 
- 
- 
Field Summary
Fields Modifier and Type Field Description protected int[]basestateChaCha base stateprotected longblockcountCurrent block count.protected IEntropySourceentropysourceEntropy source for seeding, use SSecurity.protected intoutptrPointer to unused output.protected byte[]outputblockThe output block. 
- 
Constructor Summary
Constructors Constructor Description ChaCha20Random()Initializes the PRNG.ChaCha20Random(byte[] initialseed)Initializes the PRNG.ChaCha20Random(IEntropySource seedrandom)Initializes the PRNG.ChaCha20Random(IEntropySource entropysource, byte[] initialseed)Initializes the PRNG. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]generateSeed(int numbytes)Generates a seed value from OS source.protected voidnextBlock()Generates the next ChaCha block.voidnextBlock(byte[] outputblock)Generate next block (64 bytes).voidnextBytes(byte[] bytes)Gets the next bytes.intnextInt()Gets the next int.longnextLong()Gets the next long.voidreseed()Reseeds the PRNG.voidreseed(byte[] providedseed)Reseeds the PRNG.- 
Methods inherited from class java.security.SecureRandom
getAlgorithm, getInstance, getInstance, getInstance, getInstance, getInstance, getInstance, getInstanceStrong, getParameters, getProvider, getSeed, next, nextBytes, reseed, setSeed, setSeed, toString 
 - 
 
 - 
 
- 
- 
Field Detail
- 
entropysource
protected IEntropySource entropysource
Entropy source for seeding, use SSecurity. 
- 
basestate
protected int[] basestate
ChaCha base state 
- 
blockcount
protected long blockcount
Current block count. 
- 
outputblock
protected byte[] outputblock
The output block. 
- 
outptr
protected int outptr
Pointer to unused output. 
 - 
 
- 
Constructor Detail
- 
ChaCha20Random
public ChaCha20Random()
Initializes the PRNG. 
- 
ChaCha20Random
public ChaCha20Random(IEntropySource seedrandom)
Initializes the PRNG. 
- 
ChaCha20Random
public ChaCha20Random(byte[] initialseed)
Initializes the PRNG. 
- 
ChaCha20Random
public ChaCha20Random(IEntropySource entropysource, byte[] initialseed)
Initializes the PRNG. 
 - 
 
- 
Method Detail
- 
nextLong
public long nextLong()
Gets the next long.- Overrides:
 nextLongin classjava.util.Random
 
- 
nextInt
public int nextInt()
Gets the next int.- Overrides:
 nextIntin classjava.util.Random
 
- 
nextBytes
public void nextBytes(byte[] bytes)
Gets the next bytes.- Overrides:
 nextBytesin classjava.security.SecureRandom
 
- 
nextBlock
protected void nextBlock()
Generates the next ChaCha block. 
- 
reseed
public void reseed()
Reseeds the PRNG.- Overrides:
 reseedin classjava.security.SecureRandom
 
- 
reseed
public void reseed(byte[] providedseed)
Reseeds the PRNG. 
- 
nextBlock
public void nextBlock(byte[] outputblock)
Generate next block (64 bytes).- Parameters:
 outputblock- The block.
 
- 
generateSeed
public byte[] generateSeed(int numbytes)
Generates a seed value from OS source.- Overrides:
 generateSeedin classjava.security.SecureRandom
 
 - 
 
 -