EverCrypt.DRBGAgile, multiplexing interface for HMAC-DRBG
The supported hashing algorithms are SHA2-256, SHA2-384, SHA2-512.
Users first need to instantiate an internal state with a compatible hashing algorithm and an optional but recommended personalization string. The generate or Noalloc.generate functions can then be called any number of times.
Users have the possibility to reseed, but it is not required.
val is_supported_alg : SharedDefs.HashDefs.alg -> boolis_supported_alg alg returns true if the hashing algorithm alg is supported in the agile HMAC-DRBG interface.
val instantiate :
?personalization_string:bytes ->
SharedDefs.HashDefs.alg ->
t optioninstantiate ?personalization_string alg allocates the internal state for algorithm alg using the optional personalization_string and returns a t.
generate ?additional_input st size takes optional additional_input, a state st and size, the desired number of random bytes, and returns such a buffer if successful.
reseed ?additional_input st attempts to reseed st, using the optional additional_input and returns true if successful.
module Noalloc : sig ... endVersions of these functions which write their output in a buffer passed in as an argument