HMAC_DRBG: A NIST-specified RNG based on HMAC construction over the provided hash.
module H : Mirage_crypto.Hash.S
Internally, this generator's generate always produces
k * block bytes.
generate ~g n produces
n uniformly distributed random bytes, updating the state of
reseed ~g bytes directly updates
g. Its new state depends both on
bytes and the previous state.
A generator is seded after a single application of
val accumulate : g:g -> Entropy.source -> [ `Acc of Cstruct.t -> unit ]
accumulate ~g is a closure suitable for incrementally feeding small amounts of environmentally sourced entropy into
Its operation should be fast enough for repeated calling from e.g. event loops. Systems with several distinct, stable entropy sources should use stable
source to distinguish their sources.
val seeded : g:g -> bool
seeded ~g is
true iff operations won't throw Unseeded_generator.