Module Mirage_crypto_rng_mirage.Make

Parameters

module T : Mirage_time.S
module M : Mirage_clock.MCLOCK

Signature

include S

A generator (PRNG) with its state.

module Entropy : sig ... end

Entropy sources and collection

val generate_into : ?g:g -> bytes -> ?off:int -> int -> unit

generate_into ~g buf ~off len invokes generate_into on g or default generator. The random data is put into buf starting at off (defaults to 0) with len bytes.

val generate : ?g:g -> int -> string

Invoke generate_into on g or default generator and a freshly allocated string.

val accumulate : g option -> Entropy.source -> [ `Acc of string -> unit ]

accumulate g source is a function data -> unit to feed entropy to the RNG. This is useful if your system has a special entropy source.

val initialize : ?g:'a -> ?sleep:int64 -> 'a Mirage_crypto_rng.generator -> unit Lwt.t

initialize ~g ~sleep generator sets the default generator to the generator and sets up periodic entropy feeding for that rng. This function fails (Lwt.fail) if it is called a second time. The argument ~sleep is measured in ns, and used as sleep between cpu assisted random number collection. It defaults to one second.