public final class NonceUtil extends Object
Modifier and Type | Method and Description |
---|---|
static org.bouncycastle.crypto.prng.drbg.SP80090DRBG |
newRBG(org.bouncycastle.crypto.Digest digest,
int length)
Creates a new hash-based DRBG instance that uses the given digest as the pseudorandom source.
|
static org.bouncycastle.crypto.prng.drbg.SP80090DRBG |
newRBG(org.bouncycastle.crypto.Digest digest,
int length,
org.bouncycastle.crypto.prng.EntropySource es)
Creates a new hash-based DRBG instance that uses the given digest as the pseudorandom source.
|
static org.bouncycastle.crypto.prng.drbg.SP80090DRBG |
newRBG(int length)
Creates a new DRBG instance based on a SHA-256 digest.
|
static byte[] |
nist80038d(int length)
Generates a nonce/IV using the strategy described in NIST SP-800-38d, section 8.2.2, "RBG-based
Construction".
|
static byte[] |
nist80063a(org.bouncycastle.crypto.BlockCipher cipher)
Generates a random IV according to NIST SP-800-63a, appendix C, method 2
(pseudorandom), suitable for use with any block cipher mode described in that standard.
|
static byte[] |
nist80063a(org.bouncycastle.crypto.BlockCipher cipher,
SecretKey key)
Generates a random IV according to NIST SP-800-63a, appendix C, method 1
(encrypted nonce), suitable for use with any block cipher mode described in that standard.
|
static byte[] |
nist80063a(org.bouncycastle.crypto.prng.SP800SecureRandom prng,
int blockSize)
Generates a random IV according to NIST SP-800-63a, appendix C, method 2
(pseudorandom), suitable for use with any block cipher mode described in that standard.
|
static org.bouncycastle.crypto.prng.EntropySource |
randomEntropySource(int length)
Creates a new entropy source that wraps a
SecureRandom to produce random bytes. |
static byte[] |
randomNonce(int length)
Generates a random nonce of the given length in bytes.
|
static byte[] |
timestampNonce(int length)
Generates a nonce of the given size by repetitively concatenating system timestamps (i.e.
|
public static byte[] timestampNonce(int length)
System.nanoTime()
) up to the required size.length
- Positive number of bytes in nonce.public static byte[] randomNonce(int length)
length
- Positive number of bytes in nonce.public static org.bouncycastle.crypto.prng.EntropySource randomEntropySource(int length)
SecureRandom
to produce random bytes.length
- Size of entropy blocks.public static byte[] nist80038d(int length)
This nonce generation strategy is suitable for GCM ciphers.
length
- Number of bytes in nonce; MUST be 12 or more.public static byte[] nist80063a(org.bouncycastle.crypto.BlockCipher cipher, SecretKey key)
EncryptedNonce
for the implementation.cipher
- Block cipher.key
- Encryption key intended for use with IV.EncryptedNonce
public static byte[] nist80063a(org.bouncycastle.crypto.prng.SP800SecureRandom prng, int blockSize)
prng
- NIST SP800-63a approved pseudorandom number generator.blockSize
- Cipher block size in bytes.public static byte[] nist80063a(org.bouncycastle.crypto.BlockCipher cipher)
RBGNonce
internally with length equal to block size of given cipher.cipher
- Block cipher.RBGNonce
public static org.bouncycastle.crypto.prng.drbg.SP80090DRBG newRBG(int length)
length
- Length in bits of values to be produced by DRBG instance.public static org.bouncycastle.crypto.prng.drbg.SP80090DRBG newRBG(org.bouncycastle.crypto.Digest digest, int length)
digest
- Digest algorithm.length
- Length in bits of values to be produced by DRBG instance.public static org.bouncycastle.crypto.prng.drbg.SP80090DRBG newRBG(org.bouncycastle.crypto.Digest digest, int length, org.bouncycastle.crypto.prng.EntropySource es)
digest
- Digest algorithm.length
- Length in bits of values to be produced by DRBG instance.es
- Entropy source.Copyright © 2003-2024 Virginia Tech. All Rights Reserved.