hashes icon indicating copy to clipboard operation
hashes copied to clipboard

blake2: add unkeyed hashing

Open threema-theo opened this issue 1 year ago • 0 comments

This introduces unkeyed hashing for blake2 as specified in Section 2.5 of RFC 7693 states the following:

The second (little-endian) byte of the parameter block, "kk", specifies the key size in bytes. Set kk = 00 for unkeyed hashing.

I propose to make the key an Option<&[u8]>:

pub fn new_with_salt_and_personal(
    key: Option<&[u8]>, 
    salt: &[u8], 
    persona: &[u8],
) -> Result<Self, InvalidLength>

By making the key an Option<&[u8]> - rather than opting for the unkeyed usage in case of an empty key - we make the unkeyed usage explicit and avoid inadvertent usages.

This closes #482. See also #509.

threema-theo avatar Aug 07 '24 08:08 threema-theo