<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">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.

--- lib/hash.c	2015-06-09 03:22:07.000000000 +0000
+++ 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)-&gt;type = EVP_get_digestbyname(digest_name);
-	EVP_DigestInit(&amp;HASH_CTX(hash)-&gt;digest, HASH_CTX(hash)-&gt;type);
+	HASH_CTX(hash)-&gt;digest = EVP_MD_CTX_create();
+	EVP_DigestInit(HASH_CTX(hash)-&gt;digest, HASH_CTX(hash)-&gt;type);
 #endif
 	
 	HASH_CTX(hash)-&gt;digest_name = strdup(digest_name);
@@ -143,7 +143,7 @@
 #ifdef __APPLE__
 	CCDigestUpdate(HASH_CTX(hash)-&gt;digest, buffer, nbyte);
 #else
-	EVP_DigestUpdate(&amp;HASH_CTX(hash)-&gt;digest, buffer, nbyte);
+	EVP_DigestUpdate(HASH_CTX(hash)-&gt;digest, buffer, nbyte);
 #endif
 }
 
@@ -160,7 +160,8 @@
 	CCDigestFinal(HASH_CTX(hash)-&gt;digest, buffer);
 	CCDigestDestroy(HASH_CTX(hash)-&gt;digest);
 #else
-	EVP_DigestFinal(&amp;HASH_CTX(hash)-&gt;digest, buffer, &amp;HASH_CTX(hash)-&gt;length);
+	EVP_DigestFinal(HASH_CTX(hash)-&gt;digest, buffer, &amp;HASH_CTX(hash)-&gt;length);
+	EVP_MD_CTX_destroy(HASH_CTX(hash)-&gt;digest);
 #endif
 	
 	*nbyte = HASH_CTX(hash)-&gt;length;
</pre></body></html>