gnu.crypto.prng

## Class FortunaStandalone.Generator

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

- All Implemented Interfaces:
    IRandomStandalone, Cloneable
  Enclosing class:
    FortunaStandalone

      public static class FortunaStandalone.Generator
      extends BasePRNGStandalone
      implements Cloneable

  The Fortuna generator function. The generator is a PRNG in its own right; Fortuna itself is basically a wrapper around this generator that manages reseeding in a secure way.

- - ### Field Summary

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

      `buffer, initialised, name, ndx`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FortunaStandalone.Generator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addRandomByte(byte b)` Supplement, or possibly replace, the random state of this PRNG with a random byte.
    `void` | `addRandomBytes(byte[] seed, int offset, int length)` Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.
    `void` | `fillBlock()`
    `byte` | `nextByte()` Returns the next 8 bits of random data generated from this instance.
    `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.
    `void` | `setup(Map attributes)`

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

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

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

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

- - ### Constructor Detail

    - #### FortunaStandalone.Generator

          public FortunaStandalone.Generator()

  - ### Method Detail

    - #### nextByte

          public final byte nextByte()

      Description copied from interface: `IRandomStandalone`

      Returns the next 8 bits of random data generated from this instance.

      Specified by:
        `nextByte` in interface `IRandomStandalone`
      Overrides:
        `nextByte` in class `BasePRNGStandalone`
      Returns:
        the next 8 bits of random data generated from this instance.

    - #### nextBytes

          public final void nextBytes(byte[] out,
                       int offset,
                       int length)

      Description copied from interface: `IRandomStandalone`

      Fills the designated byte array, starting from byte at index `offset`, for a maximum of `length` bytes with the output of this generator instance.

      Specified by:
        `nextBytes` in interface `IRandomStandalone`
      Overrides:
        `nextBytes` in class `BasePRNGStandalone`
      Parameters:
        `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`.

    - #### addRandomByte

          public final void addRandomByte(byte b)

      Description copied from interface: `IRandomStandalone`

      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`.

      Specified by:
        `addRandomByte` in interface `IRandomStandalone`
      Overrides:
        `addRandomByte` in class `BasePRNGStandalone`
      Parameters:
        `b` - The byte to add.

    - #### addRandomBytes

          public final void addRandomBytes(byte[] seed,
                            int offset,
                            int length)

      Description copied from interface: `IRandomStandalone`

      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`.

      Specified by:
        `addRandomBytes` in interface `IRandomStandalone`
      Overrides:
        `addRandomBytes` in class `BasePRNGStandalone`
      Parameters:
        `seed` - 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.

    - #### fillBlock

          public final void fillBlock()

      Specified by:
        `fillBlock` in class `BasePRNGStandalone`

    - #### setup

          public void setup(Map attributes)

      Specified by:
        `setup` in class `BasePRNGStandalone`