Expand description
An implementation of the crypographic random number generator CTR_DRBG as defined by NIST SP 800-90A Rev. 1.
CTR_DRBG is a Cryptographically Secure Pseudorandom Number Generator (CSPRNG) that may be used for generating sensitive data such as encryption keys. The implementation uses the AES-256 block cipher and derivation function to generate random bytes.
§Quick Example
A simple way to obtain crypographic random random data is to use
the
LocalCtrDrbg::default()
function. This returns a handle to a thread-local instance of
CtrDrbg
pre-allocated to use entropy supplied by
the OS. The std
feature is required for this approach.
use drbg::thread::LocalCtrDrbg;
let drbg = LocalCtrDrbg::default();
let mut random_data = [0u8; 32];
drbg.fill_bytes(&mut random_data, None)?;
Otherwise an instance may be constructed by hand using the
CtrBuilder
class. This approach doesn’t
require the std
feature. It also allows the caller to configure
the instance with different input parameters.