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
-
-