module Fortuna:Nocrypto.Rng.S.Generator
type
g
val block : int
val create : unit -> g
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 ->
(source:int -> Cstruct.t -> unit) Nocrypto.Uncommon.one
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