Package net.i2p.util

Class RandomSource

    • Constructor Detail

      • RandomSource

        public RandomSource​(I2PAppContext context)
        Deprecated - do not instantiate this directly, as you won't get the good one (Fortuna). Use getInstance() or I2PAppContext.getGlobalContext().random() to get the FortunaRandomSource instance.
    • Method Detail

      • getInstance

        public static RandomSource getInstance()
        Singleton for whatever PRNG i2p uses. Same as I2PAppContext.getGlobalContext().random(); use context.random() if you have a context already.
        Returns:
        I2PAppContext.getGlobalContext().random()
      • nextInt

        public 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). However, their pseudocode, as well as sun's, kaffe's, and classpath's implementation INCLUDES NEGATIVE VALUES. Ok, so we're going to have it return between 0 and n (including 0, excluding n), since thats what it has been used for. This code unused, see FortunaRandomSource override
        Overrides:
        nextInt in class Random
      • nextLong

        public long nextLong​(long n)
        Like the modified nextInt, nextLong(n) returns a random number from 0 through n, including 0, excluding n. This code unused, see FortunaRandomSource override
      • nextBytes

        public void nextBytes​(byte[] buf,
                              int offset,
                              int length)
        Not part of java.util.SecureRandom, but added since Fortuna supports it. This code unused, see FortunaRandomSource override
        Since:
        0.8.12
      • feedEntropy

        public void feedEntropy​(String source,
                                long data,
                                int bitoffset,
                                int bits)
        Description copied from interface: EntropyHarvester
        Feed the entropy pools with the bits in the data
        Specified by:
        feedEntropy in interface EntropyHarvester
        Parameters:
        source - origin of the entropy, allowing the harvester to determine how much to value the data
        bitoffset - bit index into the data array to start (using java standard big-endian)
        bits - how many bits to use
      • feedEntropy

        public void feedEntropy​(String source,
                                byte[] data,
                                int offset,
                                int len)
        Description copied from interface: EntropyHarvester
        Feed the entropy pools with data[offset:offset+len]
        Specified by:
        feedEntropy in interface EntropyHarvester
        Parameters:
        source - origin of the entropy, allowing the harvester to determine how much to value the data
        offset - index into the data array to start
        len - how many bytes to use
      • loadSeed

        public void loadSeed()
        May block up to 10 seconds
      • saveSeed

        public void saveSeed()
      • writeSeed

        public static final void writeSeed​(byte[] buf)
      • initSeed

        public final boolean initSeed​(byte[] buf)
        May block up to 10 seconds