val empty : t
empty is the hash of the empty string.
feed t msg adds the information in
feed is analogous to appending:
feed (feed t msg1) msg2 = feed t (Cstruct.append msg1 msg2).
val get : t -> Mirage_crypto.Hash.digest
get t is the digest corresponding to
val hmac_get : hmac -> Mirage_crypto.Hash.digest
hmac_get hmac is the hmac corresponding to
Functions that operate on data stored in a single chunk.
val digest : Cstruct.t -> Mirage_crypto.Hash.digest
digest msg is the digest of
digest msg = get (feed empty msg)
val hmac : key:Cstruct.t -> Cstruct.t -> Mirage_crypto.Hash.digest
hmac ~key bytes is the authentication code for
bytes under the secret
key, generated using the standard HMAC construction over this hash algorithm.
Functions over iterators
Functions that operate on arbitrary iterators. They can serve as a basis for other, more specialized aggregate hashing operations.
These functions are a little faster than using
val feedi : t -> Cstruct.t Mirage_crypto.Hash.iter -> t
feedi t iter =
(let r = ref t in iter (fun msg -> r := feed !r msg); !r)
val digesti : Cstruct.t Mirage_crypto.Hash.iter -> Mirage_crypto.Hash.digest
digesti iter = feedi empty iter |> get
val hmaci : key:Cstruct.t -> Cstruct.t Mirage_crypto.Hash.iter -> Mirage_crypto.Hash.digest