From 1c2a6496355226fdab4f9df19b28c9aa4faf2684 Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 4 May 2017 14:23:17 +0200 Subject: [PATCH] B #5140: make code compatible with openssl 1.1.0 --- src/common/NebulaUtil.cc | 46 ++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/src/common/NebulaUtil.cc b/src/common/NebulaUtil.cc index 247aafc0c3..1b65e004ec 100644 --- a/src/common/NebulaUtil.cc +++ b/src/common/NebulaUtil.cc @@ -157,18 +157,30 @@ string * one_util::base64_decode(const string& in) string one_util::sha1_digest(const string& in) { - EVP_MD_CTX mdctx; + EVP_MD_CTX* mdctx; unsigned char md_value[EVP_MAX_MD_SIZE]; unsigned int md_len; ostringstream oss; - EVP_MD_CTX_init(&mdctx); - EVP_DigestInit_ex(&mdctx, EVP_sha1(), NULL); +#if OPENSSL_VERSION_NUMBER < 0x10100000L + mdctx = (EVP_MD_CTX*) malloc(sizeof(EVP_MD_CTX)); + EVP_MD_CTX_init(mdctx); +#else + mdctx = EVP_MD_CTX_new(); +#endif - EVP_DigestUpdate(&mdctx, in.c_str(), in.length()); + EVP_DigestInit_ex(mdctx, EVP_sha1(), NULL); - EVP_DigestFinal_ex(&mdctx,md_value,&md_len); - EVP_MD_CTX_cleanup(&mdctx); + EVP_DigestUpdate(mdctx, in.c_str(), in.length()); + + EVP_DigestFinal_ex(mdctx,md_value, &md_len); + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + EVP_MD_CTX_cleanup(mdctx); + free(mdctx); +#else + EVP_MD_CTX_free(mdctx); +#endif for(unsigned int i = 0; i