Mirage_crypto_rng.Hmac_drbg
HMAC_DRBG: A NIST-specified RNG based on HMAC construction over the provided hash.
Internally, this generator's generate always produces k * block
bytes.
val generate_into : g:g -> bytes -> off:int -> int -> unit
generate_into ~g buf ~off n
produces n
uniformly distributed random bytes into buf
at offset off
, updating the state of g
.
val reseed : g:g -> string -> unit
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 reseed
.
val accumulate : g:g -> Entropy.source -> [ `Acc of string -> unit ]
accumulate ~g
is a closure suitable for incrementally feeding small amounts of environmentally sourced entropy into g
.
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.