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