diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/hmac/hmac.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/libcrypto/hmac/hmac.c b/src/lib/libcrypto/hmac/hmac.c index 55989988ad..3421119b7e 100644 --- a/src/lib/libcrypto/hmac/hmac.c +++ b/src/lib/libcrypto/hmac/hmac.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: hmac.c,v 1.27 2021/12/12 21:30:14 tb Exp $ */ | 1 | /* $OpenBSD: hmac.c,v 1.28 2022/05/05 18:29:34 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -261,11 +261,16 @@ HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d, | |||
261 | { | 261 | { |
262 | HMAC_CTX c; | 262 | HMAC_CTX c; |
263 | static unsigned char m[EVP_MAX_MD_SIZE]; | 263 | static unsigned char m[EVP_MAX_MD_SIZE]; |
264 | const unsigned char dummy_key[1] = { 0 }; | ||
264 | 265 | ||
265 | if (md == NULL) | 266 | if (md == NULL) |
266 | md = m; | 267 | md = m; |
268 | if (key == NULL) { | ||
269 | key = dummy_key; | ||
270 | key_len = 0; | ||
271 | } | ||
267 | HMAC_CTX_init(&c); | 272 | HMAC_CTX_init(&c); |
268 | if (!HMAC_Init(&c, key, key_len, evp_md)) | 273 | if (!HMAC_Init_ex(&c, key, key_len, evp_md, NULL)) |
269 | goto err; | 274 | goto err; |
270 | if (!HMAC_Update(&c, d, n)) | 275 | if (!HMAC_Update(&c, d, n)) |
271 | goto err; | 276 | goto err; |