Module Hkdf

RFC 5869 specifies a HMAC-based Extract-and-Expand Key Derivation Function (HKDF), which is abstracted over a specific hash function.

module type S : sig ... end
module Make : functor (H : Nocrypto.Hash.S) -> S

Given a Hash function, get the HKDF

val extract : hash:Nocrypto.Hash.hash ‑> ?⁠salt:Cstruct.t ‑> Cstruct.t ‑> Cstruct.t

convenience extract hash salt ikm where the hash has to be provided explicitly

val expand : hash:Nocrypto.Hash.hash ‑> prk:Cstruct.t ‑> ?⁠info:Cstruct.t ‑> int ‑> Cstruct.t

convenience expand hash prk info len where the hash has to be provided explicitly