Bouncy Castle Cryptography Library 1.49

org.bouncycastle.crypto.prng.drbg
Class CTRSP800DRBG

java.lang.Object
  extended by 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.
 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

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