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
andkey
ondata
with an output tag length oftag_length
. Returns a vector of lengthtag_length
. - Get the tag size for a given mode.