Class DualECSP800DRBG
java.lang.Object
org.bouncycastle.crypto.prng.drbg.DualECSP800DRBG
- All Implemented Interfaces:
SP80090DRBG
A SP800-90A Dual EC DRBG.
-
Constructor Summary
ConstructorDescriptionDualECSP800DRBG
(Digest digest, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce) Construct a SP800-90A Dual EC DRBG.DualECSP800DRBG
(DualECPoints[] pointSet, Digest digest, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce) Construct a SP800-90A Dual EC DRBG. -
Method Summary
-
Constructor Details
-
DualECSP800DRBG
public DualECSP800DRBG(Digest digest, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce) Construct a SP800-90A Dual EC DRBG.Minimum entropy requirement is the security strength requested.
- Parameters:
digest
- source digest to use with the 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).
-
DualECSP800DRBG
public DualECSP800DRBG(DualECPoints[] pointSet, Digest digest, int securityStrength, EntropySource entropySource, byte[] personalizationString, byte[] nonce) Construct a SP800-90A Dual EC DRBG.Minimum entropy requirement is the security strength requested.
- Parameters:
pointSet
- an array of points to choose from, in order of increasing security strengthdigest
- source digest to use with the 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 Details
-
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.
-