diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2022-01-22 12:08:26 -0500 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2022-01-22 12:18:35 -0500 |
commit | 7901259fbbf4f06be2c6f44c6b0e7d98011bd246 (patch) | |
tree | 1b9d77dc547a02a2927821afd2b88860912afba6 /src/algo_hmac.c | |
parent | d7a76d109e134b510d19972552ca1e3bed347104 (diff) | |
download | lighttpd-git-7901259fbbf4f06be2c6f44c6b0e7d98011bd246.tar.gz |
[core] fix HMAC with openssl 3.0
(thx ryandesign)
x-ref:
https://redmine.lighttpd.net/boards/2/topics/10240
Diffstat (limited to 'src/algo_hmac.c')
-rw-r--r-- | src/algo_hmac.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/algo_hmac.c b/src/algo_hmac.c index 8876fe7b..0077855c 100644 --- a/src/algo_hmac.c +++ b/src/algo_hmac.c @@ -56,6 +56,9 @@ EVP_HMAC (const EVP_MD *evp_md, const void *key, EVP_PKEY_free(pkey); return (1 == rc) ? md : NULL; } +typedef size_t evp_siglen_t; +#else +typedef unsigned int evp_siglen_t; #endif #endif @@ -99,10 +102,11 @@ li_hmac_sha1 (unsigned char digest[SHA_DIGEST_LENGTH], return 0; return 1; #elif defined(USE_OPENSSL_CRYPTO) + evp_siglen_t dlen = SHA_DIGEST_LENGTH; return (NULL != HMAC(EVP_sha1(), (const unsigned char *)secret, (int)slen, (const unsigned char *)msg, mlen, - digest, NULL)); + digest, &dlen)); #elif defined(USE_GNUTLS_CRYPTO) return 0 == gnutls_hmac_fast(GNUTLS_MAC_SHA1, @@ -174,10 +178,11 @@ li_hmac_sha256 (unsigned char digest[SHA256_DIGEST_LENGTH], return 0; return 1; #elif defined(USE_OPENSSL_CRYPTO) + evp_siglen_t dlen = SHA256_DIGEST_LENGTH; return (NULL != HMAC(EVP_sha256(), (const unsigned char *)secret, (int)slen, (const unsigned char *)msg, mlen, - digest, NULL)); + digest, &dlen)); #elif defined(USE_GNUTLS_CRYPTO) return 0 == gnutls_hmac_fast(GNUTLS_MAC_SHA256, @@ -249,10 +254,11 @@ li_hmac_sha512 (unsigned char digest[SHA512_DIGEST_LENGTH], return 0; return 1; #elif defined(USE_OPENSSL_CRYPTO) + evp_siglen_t dlen = SHA512_DIGEST_LENGTH; return (NULL != HMAC(EVP_sha512(), (const unsigned char *)secret, (int)slen, (const unsigned char *)msg, mlen, - digest, NULL)); + digest, &dlen)); #elif defined(USE_GNUTLS_CRYPTO) return 0 == gnutls_hmac_fast(GNUTLS_MAC_SHA512, |