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).
Functions that operate on data stored in a single chunk.
digest msg is the digest of
digest msg = get (feed empty msg)
hmac ~key bytes is the authentication code for
bytes under the secret
key, generated using the standard HMAC construction over this hash algorithm.
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
feedi t iter =
(let r = ref t in iter (fun msg -> r := feed !r msg); !r)
digesti iter = feedi empty iter |> get