Module Hash.MD5

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).

val get : t -> digest

get t is the digest corresponding to t.

All-in-one

val digest : Cstruct.t -> digest

digest msg is the digest of msg.

digest msg = get (feed empty msg)

val hmac : key:Cstruct.t -> Cstruct.t -> 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

val feedi : t -> Cstruct.t iter -> t

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

val digesti : Cstruct.t iter -> digest

digesti iter = feedi empty iter |> get

val hmaci : key:Cstruct.t -> Cstruct.t iter -> digest

See hmac.