gnu.crypto.prng

## Class AsyncFortunaStandalone

- java.lang.Object
- - gnu.crypto.prng.BasePRNGStandalone
  - - gnu.crypto.prng.FortunaStandalone
    - - gnu.crypto.prng.AsyncFortunaStandalone

- All Implemented Interfaces:
    IRandomStandalone, RandomEventListenerStandalone, Serializable, Cloneable, Runnable, EventListener

      public class AsyncFortunaStandalone
      extends FortunaStandalone
      implements Runnable

  fortuna instance that tries to avoid blocking if at all possible by using separate filled buffer segments rather than one buffer (and blocking when that buffer's data has been eaten)
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class gnu.crypto.prng.FortunaStandalone

      `FortunaStandalone.Generator`

  - ### Field Summary

    - ### Fields inherited from class gnu.crypto.prng.FortunaStandalone

      `generator, lastRefill, lastReseed, MIN_POOL_SIZE, NUM_POOLS, pool, pool0Count, pools, refillCount, reseedCount, SEED`

    - ### Fields inherited from class gnu.crypto.prng.BasePRNGStandalone

      `buffer, initialised, name, ndx`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AsyncFortunaStandalone(I2PAppContext context)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `allocBuffer()`
    `void` | `fillBlock()`
    `protected void` | `rotateBuffer()` make the next available filled buffer current, scheduling any unfilled buffers for refill, and blocking until at least one buffer is ready
    `void` | `run()`
    `void` | `seed(byte[] val)` the seed is only propogated once the prng is started with startup()
    `void` | `startup()`

    - ### Methods inherited from class gnu.crypto.prng.FortunaStandalone

      `addRandomByte, addRandomBytes, addRandomEvent, setup`

    - ### Methods inherited from class gnu.crypto.prng.BasePRNGStandalone

      `addRandomBytes, clone, init, isInitialised, name, nextByte, nextBytes, nextBytes`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AsyncFortunaStandalone

          public AsyncFortunaStandalone(I2PAppContext context)

  - ### Method Detail

    - #### startup

          public void startup()

    - #### seed

          public void seed(byte[] val)

      the seed is only propogated once the prng is started with startup()
      Overrides:
        `seed` in class `FortunaStandalone`

    - #### allocBuffer

          protected void allocBuffer()

      Overrides:
        `allocBuffer` in class `FortunaStandalone`

    - #### rotateBuffer

          protected void rotateBuffer()

      make the next available filled buffer current, scheduling any unfilled buffers for refill, and blocking until at least one buffer is ready

    - #### run

          public void run()

      Specified by:
        `run` in interface `Runnable`

    - #### fillBlock

          public void fillBlock()

      Overrides:
        `fillBlock` in class `FortunaStandalone`