Module hacl::hkdf

source ·
Expand description

HKDF

This module implements HKDF on SHA 1 and SHA 2 (except for SHA 224).

§Usage

use hacl::prelude::*;

let key = [0x85, 0xa7, 0xcb, 0xaa, 0xe8, 0x25, 0xbb, 0x82, 0xc9, 0xb6, 0xf6, 0xc5, 0xc2, 0xaf, 0x5a, 0xc0, 0x3d, 0x1f, 0x6d, 0xaa, 0x63, 0xd2, 0xa9, 0x3c, 0x18, 0x99, 0x48, 0xec, 0x41, 0xb9, 0xde, 0xd9];
let data = [0xa5, 0x9b];
let expected_tag = [0x0f, 0xe2, 0xf1, 0x3b, 0xba, 0x21, 0x98, 0xf6, 0xdd, 0xa1, 0xa0, 0x84, 0xbe, 0x92, 0x8e, 0x30, 0x4e, 0x9c, 0xb1, 0x6a, 0x56, 0xbc, 0x0b, 0x7b, 0x93, 0x9a, 0x07, 0x32, 0x80, 0x24, 0x43, 0x73];
let len = 32;

let tag = hmac(HmacAlgorithm::Sha256, &key, &data, Some(len));
assert_eq!(expected_tag[..], tag[..]);

Functions§

  • HKDF expand using hash function mode, pre-key material prk, info, and output length okm_len. Returns the key material in a vector of length okm_len.
  • HKDF extract using hash function mode, salt, and the input key material ikm. Returns the pre-key material in a vector of tag length.
  • HKDF using hash function mode, salt, input key material ikm, info, and output length okm_len. Calls extract and expand with the given input. Returns the key material in a vector of length okm_len.