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