lib/hash.c: fix compilation with OpenSSL-1.1+ EVP_MD_CTX has become an anonymous struct now, so can't allocate size for it anymore. --- a/lib/hash.c 2015-06-09 03:22:07.000000000 +0000 +++ b/lib/hash.c 2019-01-01 14:37:01.487775958 +0000 @@ -102,7 +102,7 @@ #ifdef __APPLE__ CCDigestRef digest; #else - EVP_MD_CTX digest; + EVP_MD_CTX *digest; const EVP_MD *type; #endif unsigned int length; @@ -123,7 +123,8 @@ #else OpenSSL_add_all_digests(); HASH_CTX(hash)->type = EVP_get_digestbyname(digest_name); - EVP_DigestInit(&HASH_CTX(hash)->digest, HASH_CTX(hash)->type); + HASH_CTX(hash)->digest = EVP_MD_CTX_create(); + EVP_DigestInit(HASH_CTX(hash)->digest, HASH_CTX(hash)->type); #endif HASH_CTX(hash)->digest_name = strdup(digest_name); @@ -143,7 +143,7 @@ #ifdef __APPLE__ CCDigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte); #else - EVP_DigestUpdate(&HASH_CTX(hash)->digest, buffer, nbyte); + EVP_DigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte); #endif } @@ -160,7 +160,8 @@ CCDigestFinal(HASH_CTX(hash)->digest, buffer); CCDigestDestroy(HASH_CTX(hash)->digest); #else - EVP_DigestFinal(&HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length); + EVP_DigestFinal(HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length); + EVP_MD_CTX_destroy(HASH_CTX(hash)->digest); #endif *nbyte = HASH_CTX(hash)->length;