| Modifier and Type | Field and Description |
|---|---|
| private BlockCipher | |
| private EntropySource | |
| private boolean | |
| private byte[] | |
| private int | |
| private long | |
| private int | |
| private int | |
| private byte[] | |
| private static final int | |
| private static final long | |
| private static final byte[] | |
| private static final int | |
| private static final long |
| Access | Constructor and Description |
|---|---|
| public | CTRSP800DRBG(BlockCipher
underlying block cipher to use to support DRBG engine, int size of the key to use with the block cipher. keySizeInBits, int security strength required (in bits) securityStrength, EntropySource source of entropy to use for seeding/reseeding. entropySource, byte[] personalization string to distinguish this DRBG (may be null). personalizationString, byte[] nonce to further distinguish this DRBG (may be null). nonce)Construct a SP800-90A CTR DRBG. |
| Modifier and Type | Method and Description |
|---|---|
| private void | |
| private void | |
| private byte[] | |
| private void | |
| private void | |
| private void | |
| private void | |
| pack-priv byte[] | |
| public int | Returns: number of bits generated, -1 if a reseed required.output array for generated bits. output, byte[] additional input to be added to the DRBG in this step. additionalInput, boolean true if a reseed should be forced, false otherwise. predictionResistant)Implements org. |
| public int | Returns: the number of bits produced on each internal round of the DRBG.Implements org. |
| private byte[] | |
| private int | |
| private boolean | |
| private void | padKey(byte[] keyMaster, int keyOff, byte[] tmp, int tmpOff)
Pad out a key for TDEA, setting odd parity for each byte. |
| public void | reseed(byte[]
additional input to be added to the DRBG in this step. additionalInput)Implements org. |
| _engine | back to summary |
|---|---|
| private BlockCipher _engine | |
| _entropySource | back to summary |
|---|---|
| private EntropySource _entropySource | |
| _isTDEA | back to summary |
|---|---|
| private boolean _isTDEA | |
| _Key | back to summary |
|---|---|
| private byte[] _Key | |
| _keySizeInBits | back to summary |
|---|---|
| private int _keySizeInBits | |
| _reseedCounter | back to summary |
|---|---|
| private long _reseedCounter | |
| _securityStrength | back to summary |
|---|---|
| private int _securityStrength | |
| _seedLength | back to summary |
|---|---|
| private int _seedLength | |
| _V | back to summary |
|---|---|
| private byte[] _V | |
| AES_MAX_BITS_REQUEST | back to summary |
|---|---|
| private static final int AES_MAX_BITS_REQUEST | |
| AES_RESEED_MAX | back to summary |
|---|---|
| private static final long AES_RESEED_MAX | |
| K_BITS | back to summary |
|---|---|
| private static final byte[] K_BITS | |
| TDEA_MAX_BITS_REQUEST | back to summary |
|---|---|
| private static final int TDEA_MAX_BITS_REQUEST | |
| TDEA_RESEED_MAX | back to summary |
|---|---|
| private static final long TDEA_RESEED_MAX | |
| CTRSP800DRBG | back to summary |
|---|---|
| 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.
| |
| addOneTo | back to summary |
|---|---|
| private void addOneTo(byte[] longer) | |
| BCC | back to summary |
|---|---|
| private void BCC(byte[] bccOut, byte[] k, byte[] iV, byte[] data) | |
| Block_Cipher_df | back to summary |
|---|---|
| private byte[] Block_Cipher_df(byte[] inputString, int bitLength) | |
| copyIntToByteArray | back to summary |
|---|---|
| private void copyIntToByteArray(byte[] buf, int value, int offSet) | |
| CTR_DRBG_Instantiate_algorithm | back to summary |
|---|---|
| private void CTR_DRBG_Instantiate_algorithm(byte[] entropy, byte[] nonce, byte[] personalisationString) | |
| CTR_DRBG_Reseed_algorithm | back to summary |
|---|---|
| private void CTR_DRBG_Reseed_algorithm(byte[] additionalInput) | |
| CTR_DRBG_Update | back to summary |
|---|---|
| private void CTR_DRBG_Update(byte[] seed, byte[] key, byte[] v) | |
| expandKey | back to summary |
|---|---|
| pack-priv byte[] expandKey(byte[] key) | |
| generate | back to summary |
|---|---|
| public int generate(byte[] output, byte[] additionalInput, boolean predictionResistant) Implements org. Populate a passed in array with random data.
| |
| getBlockSize | back to summary |
|---|---|
| public int getBlockSize() Implements org. Return the block size (in bits) of the DRBG.
| |
| getEntropy | back to summary |
|---|---|
| private byte[] getEntropy() | |
| getMaxSecurityStrength | back to summary |
|---|---|
| private int getMaxSecurityStrength(BlockCipher cipher, int keySizeInBits) | |
| isTDEA | back to summary |
|---|---|
| private boolean isTDEA(BlockCipher cipher) | |
| padKey | back to summary |
|---|---|
| private void padKey(byte[] keyMaster, int keyOff, byte[] tmp, int tmpOff) Pad out a key for TDEA, setting odd parity for each byte. | |
| reseed | back to summary |
|---|---|
| public void reseed(byte[] additionalInput) Implements org. Reseed the DRBG.
| |