diff options
Diffstat (limited to 'testing/pev/fix-openssl.patch')
-rw-r--r-- | testing/pev/fix-openssl.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/pev/fix-openssl.patch b/testing/pev/fix-openssl.patch new file mode 100644 index 0000000000..2d52ab9c4d --- /dev/null +++ b/testing/pev/fix-openssl.patch @@ -0,0 +1,46 @@ +--- a/src/pehash.c ++++ b/src/pehash.c +@@ -215,13 +215,25 @@ + unsigned char md_value[EVP_MAX_MD_SIZE]; + unsigned int md_len; + +- EVP_MD_CTX md_ctx; ++// See https://wiki.openssl.org/index.php/1.1_API_Changes ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ EVP_MD_CTX md_ctx_auto; ++ EVP_MD_CTX *md_ctx = &md_ctx_auto; ++#else ++ EVP_MD_CTX *md_ctx = EVP_MD_CTX_new(); ++#endif ++ + // FIXME: Handle errors - Check return values. +- EVP_MD_CTX_init(&md_ctx); +- EVP_DigestInit_ex(&md_ctx, md, NULL); +- EVP_DigestUpdate(&md_ctx, data, size); +- EVP_DigestFinal_ex(&md_ctx, md_value, &md_len); +- EVP_MD_CTX_cleanup(&md_ctx); ++ EVP_MD_CTX_init(md_ctx); ++ EVP_DigestInit_ex(md_ctx, md, NULL); ++ EVP_DigestUpdate(md_ctx, data, size); ++ EVP_DigestFinal_ex(md_ctx, md_value, &md_len); ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ EVP_MD_CTX_cleanup(md_ctx); ++#else ++ EVP_MD_CTX_free(md_ctx); ++#endif + + for (unsigned int i=0; i < md_len; i++) + sprintf(&output[i * 2], "%02x", md_value[i]); +--- a/src/pesec.c ++++ b/src/pesec.c +@@ -225,7 +225,10 @@ + PKCS7 *p7 = NULL; + BIO *in = NULL; + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + CRYPTO_malloc_init(); ++#endif ++ + ERR_load_crypto_strings(); + OpenSSL_add_all_algorithms(); |