X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fopenssl%2Fdigest.c;h=5778c5235818a60a7b8fc83d61a85382e4b49471;hb=cfc9fee931c70554353ce6c4acc3407baac08745;hp=6e27b153f521b29e285ae010216e93d93f4f6947;hpb=08f1e0cd33812f9d972dd7c59021443a8d02d0e0;p=tinc diff --git a/src/openssl/digest.c b/src/openssl/digest.c index 6e27b153..5778c523 100644 --- a/src/openssl/digest.c +++ b/src/openssl/digest.c @@ -138,7 +138,7 @@ void digest_close(digest_t *digest) { bool digest_create(digest_t *digest, const void *indata, size_t inlen, void *outdata) { size_t len = EVP_MD_size(digest->digest); - unsigned char tmpdata[len]; + unsigned char *tmpdata = alloca(len); if(digest->hmac_ctx) { bool ok; @@ -152,7 +152,7 @@ bool digest_create(digest_t *digest, const void *indata, size_t inlen, void *out ok = mac_ctx && EVP_MAC_update(mac_ctx, indata, inlen) - && EVP_MAC_final(mac_ctx, tmpdata, NULL, sizeof(tmpdata)); + && EVP_MAC_final(mac_ctx, tmpdata, NULL, len); EVP_MAC_CTX_free(mac_ctx); #endif @@ -184,7 +184,7 @@ bool digest_create(digest_t *digest, const void *indata, size_t inlen, void *out bool digest_verify(digest_t *digest, const void *indata, size_t inlen, const void *cmpdata) { size_t len = digest->maclength; - unsigned char outdata[len]; + unsigned char *outdata = alloca(len); return digest_create(digest, indata, inlen, outdata) && !memcmp(cmpdata, outdata, digest->maclength); }