From cf34cbc0456b9ce93316043d8d2347b7968deed1 Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Wed, 16 Feb 2022 20:32:28 +0800 Subject: [PATCH] tls: remove deprecated API, support openssl 3.0 --- src/util.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/util.c b/src/util.c index aa9b102..a481116 100644 --- a/src/util.c +++ b/src/util.c @@ -609,15 +609,22 @@ int ipset_del(const char *ipsetname, const unsigned char addr[], int addr_len) unsigned char *SSL_SHA256(const unsigned char *d, size_t n, unsigned char *md) { - SHA256_CTX c; static unsigned char m[SHA256_DIGEST_LENGTH]; if (md == NULL) md = m; - SHA256_Init(&c); - SHA256_Update(&c, d, n); - SHA256_Final(md, &c); - OPENSSL_cleanse(&c, sizeof(c)); + + EVP_MD_CTX* ctx = EVP_MD_CTX_create(); + if (ctx == NULL) { + return NULL; + } + + EVP_MD_CTX_init(ctx); + EVP_DigestInit_ex(ctx, EVP_sha256(), NULL); + EVP_DigestUpdate(ctx, d, n); + EVP_DigestFinal_ex(ctx, m, NULL); + EVP_MD_CTX_destroy(ctx); + return (md); }