From c2920c2c7c313cd1d83fef4375530a725b29b4d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20P=C3=ADsa=C5=99?= Date: Sun, 16 Oct 2016 10:29:52 +0200 Subject: [PATCH] Adapt to OpenSSL 1.1.0 OpenSSL 1.1.0 hid structure internals and provided methods. This patch adapts to the changes so that it's possible to build it against new and old OpenSSL. --- src/crypto_openssl.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/crypto_openssl.c b/src/crypto_openssl.c index 40e89cb..1485f69 100644 --- a/src/crypto_openssl.c +++ b/src/crypto_openssl.c @@ -17,6 +17,20 @@ # define SHA1_DIGEST_LENGTH 20 #endif /* !SHA1_DIGEST_LENGTH */ +#if OPENSSL_VERSION_NUMBER < 0x10100000L +static EVP_MD_CTX *EVP_MD_CTX_new(void) { + EVP_MD_CTX *mdctx = malloc(sizeof(*mdctx)); + if (NULL != mdctx) { + EVP_MD_CTX_init(mdctx); + } + return mdctx; +} + +static void EVP_MD_CTX_free(EVP_MD_CTX *mdctx) { + EVP_MD_CTX_cleanup(mdctx); + free(mdctx); +} +#endif /* Initialise all cryptographic libraries which libisds depends on. * @return IE_SUCCESS if everything went all-right. */ @@ -76,12 +90,11 @@ _hidden isds_error _isds_compute_hash(const void *input, goto fail; } - mdctx = malloc(sizeof(*mdctx)); + mdctx = EVP_MD_CTX_new(); if (NULL == mdctx) { retval = IE_NOMEM; goto fail; } - EVP_MD_CTX_init(mdctx); if (!EVP_DigestInit(mdctx, md)) { retval = IE_ERROR; goto fail; @@ -105,13 +118,14 @@ _hidden isds_error _isds_compute_hash(const void *input, goto fail; } - EVP_MD_CTX_cleanup(mdctx); free(mdctx); mdctx = NULL; + EVP_MD_CTX_free(mdctx); + mdctx = NULL; return IE_SUCCESS; fail: if (NULL != mdctx) { - EVP_MD_CTX_cleanup(mdctx); free(mdctx); + EVP_MD_CTX_free(mdctx); } return retval; } -- 2.11.4.GIT