Minor type improvements in legacy protocol code
[tinc] / src / openssl / digest.c
index 6e27b15..b497c93 100644 (file)
@@ -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;
        }