Package org.bouncycastle.crypto.prng.drbg

## Interface SP80090DRBG

- All Known Implementing Classes:
    `CTRSP800DRBG`, `DualECSP800DRBG`, `HashSP800DRBG`, `HMacSP800DRBG`

      public interface SP80090DRBG

  Interface to SP800-90A deterministic random bit generators.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `generate​(byte[] output, byte[] additionalInput, boolean predictionResistant)` | Populate a passed in array with random data.
    `int` | `getBlockSize()` | Return the block size of the DRBG.
    `void` | `reseed​(byte[] additionalInput)` | Reseed the DRBG.

- - ### Method Detail

    - #### getBlockSize

          int getBlockSize()

      Return the block size of the DRBG.
      Returns:
        the block size (in bits) produced by each round of the DRBG.

    - #### generate

          int generate​(byte[] output,
                       byte[] additionalInput,
                       boolean predictionResistant)

      Populate a passed in array with random data.
      Parameters:
        `output` - output array for generated bits.
        `additionalInput` - additional input to be added to the DRBG in this step.
        `predictionResistant` - true if a reseed should be forced, false otherwise.
      Returns:
        number of bits generated, -1 if a reseed required.

    - #### reseed

          void reseed​(byte[] additionalInput)

      Reseed the DRBG.
      Parameters:
        `additionalInput` - additional input to be added to the DRBG in this step.