Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.crypto.prng.drbg
Class HMacSP800DRBG

    java.lang.Object
      org.bouncycastle.crypto.prng.drbg.HMacSP800DRBG

All Implemented Interfaces:
  SP80090DRBG

public class HMacSP800DRBG
extends java.lang.Object
implements SP80090DRBG

A SP800-90A HMAC DRBG.

Constructor Summary
`HMacSP800DRBG(Mac hMac, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce)` Construct a SP800-90A Hash DRBG.

Method Summary
`int` | `generate(byte[] output, byte[] additionalInput, boolean predictionResistant)` Populate a passed in array with random data.
`int` | `getBlockSize()` Return the block size (in bits) of the DRBG.
`void` | `reseed(byte[] additionalInput)` Reseed the DRBG.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### HMacSP800DRBG

    public HMacSP800DRBG(Mac hMac,
                         int securityStrength,
                         EntropySource entropySource,
                         byte[] personalizationString,
                         byte[] nonce)

  Construct a SP800-90A Hash DRBG.

  Minimum entropy requirement is the security strength requested.

Parameters:
  `hMac` - Hash MAC to base the DRBG on.
  `securityStrength` - security strength required (in bits)
  `entropySource` - source of entropy to use for seeding/reseeding.
  `personalizationString` - personalization string to distinguish this DRBG (may be null).
  `nonce` - nonce to further distinguish this DRBG (may be null).

Method Detail

### getBlockSize

    public int getBlockSize()

  Return the block size (in bits) of the DRBG.

  Specified by:
    `getBlockSize` in interface `SP80090DRBG`
  Returns:
    the number of bits produced on each round of the DRBG.

### generate

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

  Populate a passed in array with random data.

  Specified by:
    `generate` in interface `SP80090DRBG`
  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

    public void reseed(byte[] additionalInput)

  Reseed the DRBG.

  Specified by:
    `reseed` in interface `SP80090DRBG`
  Parameters:
    `additionalInput` - additional input to be added to the DRBG in this step.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD