pub fn keyed_hash(key: &[u8; 32], input: &[u8]) -> Hash
Expand description
The keyed hash function.
This is suitable for use as a message authentication code, for example to
replace an HMAC instance. In that use case, the constant-time equality
checking provided by Hash
is almost always a security
requirement, and callers need to be careful not to compare MACs as raw
bytes.
For an incremental version that accepts multiple writes, see Hasher::new_keyed
,
Hasher::update
, and Hasher::finalize
. These two lines are equivalent:
let mac = blake3::keyed_hash(KEY, b"foo");
let mac = blake3::Hasher::new_keyed(KEY).update(b"foo").finalize();
For output sizes other than 32 bytes, see Hasher::finalize_xof
, and OutputReader
.
This function is always single-threaded. For multithreading support, see
Hasher::update_rayon
.