Class HashSP800DRBG
- java.lang.Object
-
- org.bouncycastle.crypto.prng.drbg.HashSP800DRBG
-
- All Implemented Interfaces:
SP80090DRBG
public class HashSP800DRBG extends java.lang.Object implements SP80090DRBG
A SP800-90A Hash DRBG.
-
-
Constructor Summary
Constructors Constructor Description HashSP800DRBG(Digest digest, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce)
Construct a SP800-90A Hash DRBG.
-
Method Summary
All Methods Instance Methods Concrete 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 (in bits) of the DRBG.void
reseed(byte[] additionalInput)
Reseed the DRBG.
-
-
-
Constructor Detail
-
HashSP800DRBG
public HashSP800DRBG(Digest digest, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce)
Construct a SP800-90A Hash DRBG.Minimum entropy requirement is the security strength requested.
- Parameters:
digest
- source digest to use for DRB stream.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 interfaceSP80090DRBG
- 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 interfaceSP80090DRBG
- 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 interfaceSP80090DRBG
- Parameters:
additionalInput
- additional input to be added to the DRBG in this step.
-
-