Bouncy Castle Cryptography Library 1.77.0

org.bouncycastle.crypto.prng.drbg
Class CTRSP800DRBG

java.lang.Object
  |
  +--org.bouncycastle.crypto.prng.drbg.CTRSP800DRBG
All Implemented Interfaces:
SP80090DRBG

public class CTRSP800DRBG
extends java.lang.Object
implements SP80090DRBG

A SP800-90A CTR DRBG.


Constructor Summary
CTRSP800DRBG(BlockCipher engine, int keySizeInBits, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce)
          Construct a SP800-90A CTR 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

CTRSP800DRBG

public CTRSP800DRBG(BlockCipher engine,
                    int keySizeInBits,
                    int securityStrength,
                    EntropySource entropySource,
                    byte[] personalizationString,
                    byte[] nonce)
Construct a SP800-90A CTR DRBG.

Minimum entropy requirement is the security strength requested.

Parameters:
engine - underlying block cipher to use to support DRBG
keySizeInBits - size of the key to use with the block cipher.
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 internal 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.

Bouncy Castle Cryptography Library 1.77.0