SP80090DRBG (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

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