Library
Module
Module type
Parameter
Class
Class type
module H : Mirage_crypto.Hash.S
Internally, this generator's generate always produces k * block
bytes.
val generate : g:g -> int -> Cstruct.t
generate ~g n
produces n
uniformly distributed random bytes, updating the state of g
.
val reseed : g:g -> Cstruct.t -> 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 -> [ `Acc of source:int -> Cstruct.t -> 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.
A generator is seeded after a single application of the closure.
val seeded : g:g -> bool
seeded ~g
is true
iff operations won't throw Unseeded_generator.