IRandomStandalone
, java.io.Serializable
, java.lang.Cloneable
FortunaStandalone
, FortunaStandalone.Generator
public abstract class BasePRNGStandalone extends java.lang.Object implements IRandomStandalone, java.io.Serializable
An abstract class to facilitate implementing PRNG algorithms.
Modified slightly by jrandom for I2P (removing unneeded exceptions)修飾子とタイプ | フィールド | 説明 |
---|---|---|
protected byte[] |
buffer |
A temporary buffer to serve random bytes.
|
protected boolean |
initialised |
Indicate if this instance has already been initialised or not.
|
protected java.lang.String |
name |
The canonical name prefix of the PRNG algorithm.
|
protected int |
ndx |
The index into buffer of where the next byte will come from.
|
修飾子 | コンストラクタ | 説明 |
---|---|---|
protected |
BasePRNGStandalone(java.lang.String name) |
Trivial constructor for use by concrete subclasses.
|
修飾子とタイプ | メソッド | 説明 |
---|---|---|
void |
addRandomByte(byte b) |
Supplement, or possibly replace, the random state of this PRNG with
a random byte.
|
void |
addRandomBytes(byte[] buffer) |
Supplement, or possibly replace, the random state of this PRNG with
a sequence of new random bytes.
|
void |
addRandomBytes(byte[] buffer,
int offset,
int length) |
Supplement, or possibly replace, the random state of this PRNG with
a sequence of new random bytes.
|
java.lang.Object |
clone() |
Returns a clone copy of this instance.
|
abstract void |
fillBlock() |
|
void |
init(java.util.Map<java.lang.String,byte[]> attributes) |
Initialises the pseudo-random number generator scheme with the
appropriate attributes.
|
boolean |
isInitialised() |
|
java.lang.String |
name() |
Returns the canonical name of this instance.
|
byte |
nextByte() |
Returns the next 8 bits of random data generated from this instance.
|
void |
nextBytes(byte[] out) |
|
void |
nextBytes(byte[] out,
int offset,
int length) |
Fills the designated byte array, starting from byte at index
offset , for a maximum of length bytes with the
output of this generator instance. |
abstract void |
setup(java.util.Map<java.lang.String,byte[]> attributes) |
protected final java.lang.String name
protected volatile boolean initialised
protected volatile byte[] buffer
protected int ndx
protected BasePRNGStandalone(java.lang.String name)
Trivial constructor for use by concrete subclasses.
name
- the canonical name of this instance.public java.lang.String name()
IRandomStandalone
Returns the canonical name of this instance.
name
インタフェース内 IRandomStandalone
public void init(java.util.Map<java.lang.String,byte[]> attributes)
IRandomStandalone
Initialises the pseudo-random number generator scheme with the appropriate attributes.
init
インタフェース内 IRandomStandalone
attributes
- a set of name-value pairs that describe the desired
future instance behaviour.public byte nextByte() throws java.lang.IllegalStateException
IRandomStandalone
Returns the next 8 bits of random data generated from this instance.
nextByte
インタフェース内 IRandomStandalone
java.lang.IllegalStateException
- if the instance is not yet initialised.public void nextBytes(byte[] out) throws java.lang.IllegalStateException
java.lang.IllegalStateException
public void nextBytes(byte[] out, int offset, int length) throws java.lang.IllegalStateException
IRandomStandalone
Fills the designated byte array, starting from byte at index
offset
, for a maximum of length
bytes with the
output of this generator instance.
nextBytes
インタフェース内 IRandomStandalone
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 within 0
and
out.length
.length
- the maximum number of required random bytes. This method
does nothing if this parameter is less than 1
.java.lang.IllegalStateException
- if the instance is not yet initialised.public void addRandomByte(byte b)
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
.
addRandomByte
インタフェース内 IRandomStandalone
b
- The byte to add.public void addRandomBytes(byte[] buffer)
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
.
addRandomBytes
インタフェース内 IRandomStandalone
buffer
- The buffer of new random bytes to add.public void addRandomBytes(byte[] buffer, int offset, int length)
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
.
addRandomBytes
インタフェース内 IRandomStandalone
buffer
- 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.public boolean isInitialised()
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
IRandomStandalone
Returns a clone copy of this instance.
clone
インタフェース内 IRandomStandalone
clone
クラス内 java.lang.Object
java.lang.CloneNotSupportedException
public abstract void setup(java.util.Map<java.lang.String,byte[]> attributes)
public abstract void fillBlock()