libcrypto: Use a pointer for EVP_MD_CTX

This is for OpenSSL 1.1.0 support.

Cherry-picked from 607c671f67

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Jakub Jelen
2016-11-05 16:52:41 +01:00
committed by Andreas Schneider
parent 7933756b5a
commit fbeecf388c

View File

@@ -134,18 +134,19 @@ static const EVP_MD *nid_to_evpmd(int nid)
void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen) void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen)
{ {
const EVP_MD *evp_md = nid_to_evpmd(nid); const EVP_MD *evp_md = nid_to_evpmd(nid);
EVP_MD_CTX md; EVP_MD_CTX *md = EVP_MD_CTX_new();
EVP_DigestInit(&md, evp_md); EVP_DigestInit(md, evp_md);
EVP_DigestUpdate(&md, digest, len); EVP_DigestUpdate(md, digest, len);
EVP_DigestFinal(&md, hash, hlen); EVP_DigestFinal(md, hash, hlen);
EVP_MD_CTX_free(md);
} }
EVPCTX evp_init(int nid) EVPCTX evp_init(int nid)
{ {
const EVP_MD *evp_md = nid_to_evpmd(nid); const EVP_MD *evp_md = nid_to_evpmd(nid);
EVPCTX ctx = malloc(sizeof(EVP_MD_CTX)); EVPCTX ctx = EVP_MD_CTX_new();
if (ctx == NULL) { if (ctx == NULL) {
return NULL; return NULL;
} }