|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Random
java.security.SecureRandom
net.i2p.util.RandomSource
net.i2p.util.FortunaRandomSource
public class FortunaRandomSource
Wrapper around GNU-Crypto's Fortuna PRNG. This seeds from /dev/urandom and ./prngseed.rnd on startup (if they exist), writing a new seed to ./prngseed.rnd on an explicit call to saveSeed().
Field Summary |
---|
Fields inherited from class net.i2p.util.RandomSource |
---|
_context |
Constructor Summary | |
---|---|
FortunaRandomSource(I2PAppContext context)
May block up to 10 seconds or forever |
Method Summary | |
---|---|
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()
|
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 |
Methods inherited from class net.i2p.util.RandomSource |
---|
getInstance, initSeed, loadSeed, saveSeed, writeSeed |
Methods inherited from class java.security.SecureRandom |
---|
generateSeed, getAlgorithm, getInstance, getInstance, getInstance, getProvider, getSeed, next, setSeed |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public FortunaRandomSource(I2PAppContext context)
Method Detail |
---|
public void shutdown()
public void setSeed(byte[] buf)
setSeed
in class SecureRandom
public int nextInt(int n)
nextInt
in class RandomSource
public int nextInt()
nextInt
in class Random
public long nextLong(long n)
nextLong
in class RandomSource
public long nextLong()
nextLong
in class Random
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 double nextDouble()
nextDouble
in class Random
public float nextFloat()
nextFloat
in class Random
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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |