|
For the latest news and information visit The GNU Crypto project |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgnu.crypto.prng.BasePRNG
public abstract class BasePRNG
An abstract class to facilitate implementing PRNG algorithms.
Field Summary | |
---|---|
protected byte[] |
buffer
A temporary buffer to serve random bytes. |
protected boolean |
initialised
Indicate if this instance has already been initialised or not. |
protected 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. |
Constructor Summary | |
---|---|
protected |
BasePRNG(String name)
Trivial constructor for use by concrete subclasses. |
Method Summary | |
---|---|
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. |
Object |
clone()
Returns a clone copy of this instance. |
abstract void |
fillBlock()
|
void |
init(Map attributes)
Initialises the pseudo-random number generator scheme with the appropriate attributes. |
boolean |
isInitialised()
|
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(Map attributes)
|
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected String name
protected boolean initialised
protected byte[] buffer
protected int ndx
Constructor Detail |
---|
protected BasePRNG(String name)
Trivial constructor for use by concrete subclasses.
name
- the canonical name of this instance.Method Detail |
---|
public String name()
IRandom
Returns the canonical name of this instance.
name
in interface IRandom
public void init(Map attributes)
IRandom
Initialises the pseudo-random number generator scheme with the appropriate attributes.
init
in interface IRandom
attributes
- a set of name-value pairs that describe the desired
future instance behaviour.public byte nextByte() throws IllegalStateException, LimitReachedException
IRandom
Returns the next 8 bits of random data generated from this instance.
nextByte
in interface IRandom
IllegalStateException
- if the instance is not yet initialised.
LimitReachedException
- if this instance has reached its
theoretical limit for generating non-repetitive pseudo-random data.public void nextBytes(byte[] out) throws IllegalStateException, LimitReachedException
IllegalStateException
LimitReachedException
public void nextBytes(byte[] out, int offset, int length) throws IllegalStateException, LimitReachedException
IRandom
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
in interface IRandom
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
.
IllegalStateException
- if the instance is not yet initialised.
LimitReachedException
- if this instance has reached its
theoretical limit for generating non-repetitive pseudo-random data.public void addRandomByte(byte b)
IRandom
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
in interface IRandom
b
- The byte to add.public void addRandomBytes(byte[] buffer)
IRandom
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
in interface IRandom
buffer
- The buffer of new random bytes to add.public void addRandomBytes(byte[] buffer, int offset, int length)
IRandom
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
in interface IRandom
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 Object clone() throws CloneNotSupportedException
IRandom
Returns a clone copy of this instance.
clone
in interface IRandom
clone
in class Object
CloneNotSupportedException
public abstract void setup(Map attributes)
public abstract void fillBlock() throws LimitReachedException
LimitReachedException
|
For the latest news and information visit The GNU Crypto project |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |