Class BlockingSecureRandomNIST
- java.lang.Object
-
- io.heraldprox.herald.sensor.datatype.random.RandomSource
-
- io.heraldprox.herald.sensor.datatype.random.BlockingSecureRandom
-
- io.heraldprox.herald.sensor.datatype.random.BlockingSecureRandomNIST
-
public class BlockingSecureRandomNIST extends BlockingSecureRandom
Secure random number generator that is blocking after about 6.0 hours on idle devices due to lack of entropy. SecureRandom seeded according to NIST SP800-90A recommendations - SHA1PRNG algorithm - Algorithm seeded with 440 bits of secure random data - Skips first random number of bytes to mitigate against poor implementations Compliance to NIST SP800-90A offers quality assurance against an accepted standard. The aim here is not to offer the most perfect random source, but a source with well defined and understood characteristics, thus enabling selection of the most appropropriate method, given the intented purpose. This implementation supports security strength for NIST SP800-57 Part 1 Revision 5 (informally, generation of cryptographic keys for encryption of sensitive data).
-
-
Field Summary
-
Fields inherited from class io.heraldprox.herald.sensor.datatype.random.RandomSource
entropy
-
-
Constructor Summary
Constructors Constructor Description BlockingSecureRandomNIST()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
nextBytes(byte[] bytes)
Get random bytes from the random source.-
Methods inherited from class io.heraldprox.herald.sensor.datatype.random.BlockingSecureRandom
getSecureRandom
-
Methods inherited from class io.heraldprox.herald.sensor.datatype.random.RandomSource
addEntropy, addEntropy, addEntropy, hash, nextInt, nextLong, useEntropy, useEntropy
-
-
-
-
Method Detail
-
nextBytes
public void nextBytes(@NonNull byte[] bytes)
Description copied from class:RandomSource
Get random bytes from the random source.- Overrides:
nextBytes
in classBlockingSecureRandom
- Parameters:
bytes
- Fill byte array with random data.
-
-