package mirage-crypto-rng

  1. Overview
  2. Docs
val digest_size : int

Size of digests (in bytes).

Core operations

type t

Represents a running hash computation in a way suitable for appending inputs.

val empty : t

empty is the hash of the empty string.

val feed : t -> Cstruct.t -> t

feed t msg adds the information in msg to t.

feed is analogous to appending: feed (feed t msg1) msg2 = feed t (Cstruct.append msg1 msg2).

get t is the digest corresponding to t.


Functions that operate on data stored in a single chunk.

digest msg is the digest of msg.

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 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 feed directly.

feedi t iter = (let r = ref t in iter (fun msg -> r := feed !r msg); !r)

digesti iter = feedi empty iter |> get


Innovation. Community. Security.