Package gnu.crypto.prng
Class FortunaStandalone.Generator
java.lang.Object
gnu.crypto.prng.BasePRNGStandalone
gnu.crypto.prng.FortunaStandalone.Generator
- All Implemented Interfaces:
IRandomStandalone
,Serializable
,Cloneable
- Enclosing class:
- FortunaStandalone
public static class FortunaStandalone.Generator extends BasePRNGStandalone implements Cloneable
The Fortuna generator function. The generator is a PRNG in its own
right; Fortuna itself is basically a wrapper around this generator
that manages reseeding in a secure way.
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors Constructor Description Generator()
-
Method Summary
Modifier and Type Method Description void
addRandomByte(byte b)
Supplement, or possibly replace, the random state of this PRNG with a random byte.void
addRandomBytes(byte[] seed, int offset, int length)
Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.void
fillBlock()
byte
nextByte()
Returns the next 8 bits of random data generated from this instance.void
nextBytes(byte[] out, int offset, int length)
Fills the designated byte array, starting from byte at indexoffset
, for a maximum oflength
bytes with the output of this generator instance.void
setup(Map<String,byte[]> attributes)
Methods inherited from class gnu.crypto.prng.BasePRNGStandalone
addRandomBytes, clone, init, isInitialised, name, nextBytes
-
Constructor Details
-
Generator
public Generator()
-
-
Method Details
-
nextByte
public final byte nextByte()Description copied from interface:IRandomStandalone
Returns the next 8 bits of random data generated from this instance.
- Specified by:
nextByte
in interfaceIRandomStandalone
- Overrides:
nextByte
in classBasePRNGStandalone
- Returns:
- the next 8 bits of random data generated from this instance.
-
nextBytes
public final void nextBytes(byte[] out, int offset, int length)Description copied from interface:IRandomStandalone
Fills the designated byte array, starting from byte at index
offset
, for a maximum oflength
bytes with the output of this generator instance.- Specified by:
nextBytes
in interfaceIRandomStandalone
- Overrides:
nextBytes
in classBasePRNGStandalone
- Parameters:
out
- the placeholder to contain the generated random bytes.offset
- the starting index in out to consider. This method does nothing if this parameter is not within0
andout.length
.length
- the maximum number of required random bytes. This method does nothing if this parameter is less than1
.
-
addRandomByte
public final void addRandomByte(byte b)Description copied from interface:IRandomStandalone
Supplement, or possibly replace, the random state of this PRNG with a random byte.
Implementations are not required to implement this method in any meaningful way; this may be a no-operation, and implementations may throw an
UnsupportedOperationException
.- Specified by:
addRandomByte
in interfaceIRandomStandalone
- Overrides:
addRandomByte
in classBasePRNGStandalone
- Parameters:
b
- The byte to add.
-
addRandomBytes
public final void addRandomBytes(byte[] seed, int offset, int length)Description copied from interface:IRandomStandalone
Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.
Implementations are not required to implement this method in any meaningful way; this may be a no-operation, and implementations may throw an
UnsupportedOperationException
.- Specified by:
addRandomBytes
in interfaceIRandomStandalone
- Overrides:
addRandomBytes
in classBasePRNGStandalone
- Parameters:
seed
- The buffer of new random bytes to add.offset
- The offset from whence to begin reading random bytes.length
- The number of random bytes to add.
-
fillBlock
public final void fillBlock()- Specified by:
fillBlock
in classBasePRNGStandalone
-
setup
- Specified by:
setup
in classBasePRNGStandalone
-