Fix HMAC() with NULL key
authortb <tb@openbsd.org>
Thu, 5 May 2022 18:29:34 +0000 (18:29 +0000)
committertb <tb@openbsd.org>
Thu, 5 May 2022 18:29:34 +0000 (18:29 +0000)
commit5dad867ccb9407300ecb7a842441006c05707eaf
tree8eefc5aa4854db7ba3f82eaf6386a7914dc6b6fe
parent37b541b9fa24c6abff9c48e6d61b07889687c1a8
Fix HMAC() with NULL key

If a NULL key is passed to HMAC_Init_ex(), it tries to reuse the
previous key. This makes no sense inside HMAC() since the HMAC_CTX
has no key set yet. This is hit by HKDF() with NULL salt() via the
EVP API and results in a few Wycheproof test failures. If key is
NULL, use a zero length dummy key.

This was not hit from wycheproof.go since we pass a []byte with a
single NUL from Go.

Matches OpenSSL if key is NULL and key_len is 0. If key_len != 0,
OpenSSL will still fail by passing a NULL key which makes no sense,
so set key_len to 0 instead.

ok beck jsing
lib/libcrypto/hmac/hmac.c