public class FortunaRandomSource extends RandomSource implements EntropyHarvester
_context
Constructor and Description |
---|
FortunaRandomSource(I2PAppContext context)
May block up to 10 seconds or forever
|
Modifier and Type | Method and Description |
---|---|
void |
feedEntropy(String source,
byte[] data,
int offset,
int len)
reseed the fortuna
|
void |
feedEntropy(String source,
long data,
int bitoffset,
int bits)
reseed the fortuna
|
EntropyHarvester |
harvester() |
static void |
main(String[] args)
Outputs to stdout for dieharder:
java -cp build/i2p.jar net.i2p.util.FortunaRandomSource | dieharder -a -g 200
|
protected int |
nextBits(int numBits)
Pull the next numBits of random data off the fortuna instance (returning 0
through 2^numBits-1
Caller must synchronize!
|
boolean |
nextBoolean() |
byte |
nextByte()
Not part of java.util.SecureRandom, but added for efficiency, since Fortuna supports it.
|
void |
nextBytes(byte[] buf) |
void |
nextBytes(byte[] buf,
int offset,
int length)
Not part of java.util.SecureRandom, but added for efficiency, since Fortuna supports it.
|
double |
nextDouble()
Implementation from sun's java.util.Random javadocs
|
float |
nextFloat()
Implementation from sun's java.util.Random javadocs
|
double |
nextGaussian()
Implementation from sun's java.util.Random javadocs
|
int |
nextInt() |
int |
nextInt(int n)
According to the java docs (http://java.sun.com/j2se/1.4.1/docs/api/java/util/Random.html#nextInt(int))
nextInt(n) should return a number between 0 and n (including 0 and excluding n).
|
long |
nextLong() |
long |
nextLong(long n)
Like the modified nextInt, nextLong(n) returns a random number from 0 through n,
including 0, excluding n.
|
void |
setSeed(byte[] buf) |
void |
shutdown()
Note - methods may hang or NPE or throw IllegalStateExceptions after this
|
getInstance, initSeed, loadSeed, saveSeed, writeSeed
generateSeed, getAlgorithm, getInstance, getInstance, getInstance, getProvider, getSeed, next, setSeed
public FortunaRandomSource(I2PAppContext context)
public void shutdown()
public void setSeed(byte[] buf)
setSeed
in class SecureRandom
public int nextInt(int n)
nextInt
in class RandomSource
public long nextLong(long n)
nextLong
in class RandomSource
public boolean nextBoolean()
nextBoolean
in class Random
public void nextBytes(byte[] buf)
nextBytes
in class SecureRandom
public void nextBytes(byte[] buf, int offset, int length)
nextBytes
in class RandomSource
public byte nextByte()
public double nextDouble()
nextDouble
in class Random
public float nextFloat()
public double nextGaussian()
nextGaussian
in class Random
protected int nextBits(int numBits)
public EntropyHarvester harvester()
harvester
in class RandomSource
public void feedEntropy(String source, long data, int bitoffset, int bits)
feedEntropy
in interface EntropyHarvester
feedEntropy
in class RandomSource
source
- origin of the entropy, allowing the harvester to
determine how much to value the databitoffset
- bit index into the data array to start
(using java standard big-endian)bits
- how many bits to usepublic void feedEntropy(String source, byte[] data, int offset, int len)
feedEntropy
in interface EntropyHarvester
feedEntropy
in class RandomSource
source
- origin of the entropy, allowing the harvester to
determine how much to value the dataoffset
- index into the data array to startlen
- how many bytes to usepublic static void main(String[] args)
java -cp build/i2p.jar net.i2p.util.FortunaRandomSource | dieharder -a -g 200