openwrt-packages/mail/mailsend/patches/0001-OpenSSL-1.1-support-fo...

48 lines
1.2 KiB
Diff

From 960df6d7a11eef90128dc2ae660866b27f0e4336 Mon Sep 17 00:00:00 2001
From: muquit <muquit@gmail.com>
Date: Wed, 21 Sep 2016 12:46:24 -0400
Subject: [PATCH] OpenSSL 1.1 support for HMAC api
---
utils.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
--- a/utils.c
+++ b/utils.c
@@ -791,8 +791,14 @@ char *encode_cram_md5(char *challenge,ch
unsigned char
hmac_md5[16];
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
HMAC_CTX
ctx;
+#else
+ /* OpenSSL 1.1.x*/
+ HMAC_CTX
+ *ctx;
+#endif
const EVP_MD
*md5=NULL;
@@ -831,11 +837,20 @@ char *encode_cram_md5(char *challenge,ch
showVerbose("Challenge After decoding: %s\n",data);
/* take HMAC-MD5 of the challenge*/
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
md5=EVP_get_digestbyname("md5");
HMAC_CTX_init(&ctx);
HMAC_Init(&ctx,secret,strlen(secret),md5);
HMAC_Update(&ctx,data,data_len);
HMAC_Final(&ctx,hmac_md5,&hmac_len);
+#else
+ /* OpenSSL 1.1.x */
+ ctx = HMAC_CTX_new();
+ HMAC_Init_ex(ctx,secret,strlen(secret),EVP_md5(),NULL);
+ HMAC_Update(ctx,data,data_len);
+ HMAC_Final(ctx,hmac_md5,&hmac_len);
+#endif
/* convert the digest to hex */
memset(hex,0,sizeof(hex));