X-Git-Url: http://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fopenssl%2Fdigest.c;h=b497c93bbdfe143c3dbd0117c09addc3e0710832;hb=c32235ac0ef4ce8af77d59c6186436c49c3d7386;hp=6e27b153f521b29e285ae010216e93d93f4f6947;hpb=dcf9e6c3e444fd39318f8d5b261bdc22e5031f67;p=tinc diff --git a/src/openssl/digest.c b/src/openssl/digest.c index 6e27b153..b497c93b 100644 --- a/src/openssl/digest.c +++ b/src/openssl/digest.c @@ -55,7 +55,7 @@ bool digest_open_by_name(digest_t *digest, const char *name, size_t maclength) { return true; } -bool digest_open_by_nid(digest_t *digest, int nid, size_t maclength) { +bool digest_open_by_nid(digest_t *digest, nid_t nid, size_t maclength) { const EVP_MD *evp_md = EVP_get_digestbynid(nid); if(!evp_md) { @@ -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,12 +184,12 @@ 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); } -int digest_get_nid(const digest_t *digest) { +nid_t digest_get_nid(const digest_t *digest) { if(!digest || !digest->digest) { return 0; }