Module hacl::hmac

source ·
Expand description

HMAC

This module implements HMAC 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[..]);

Enums§

  • The HMAC mode defining the used hash function.

Functions§

  • Compute the HMAC value with the given mode and key on data with an output tag length of tag_length. Returns a vector of length tag_length.
  • Get the tag size for a given mode.