give more meaningful error if presented with wrong certificate type by server
[openssl.git] / crypto / asn1 / a_digest.c
index b728e5c0e201e781d05c892d5f26ba9a058c3c70..cbdeea6ac07da8ed7e073e85b53405ff1eb1bdaf 100644 (file)
@@ -72,9 +72,8 @@
 
 #ifndef NO_ASN1_OLD
 
-int ASN1_digest(int (*i2d)(void *, unsigned char **),
-               const EVP_MD *type, char *data, unsigned char *md,
-               unsigned int *len)
+int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
+               unsigned char *md, unsigned int *len)
        {
        int i;
        unsigned char *str,*p;
@@ -88,7 +87,8 @@ int ASN1_digest(int (*i2d)(void *, unsigned char **),
        p=str;
        i2d(data,&p);
 
-       EVP_Digest(str, i, md, len, type, NULL);
+       if (!EVP_Digest(str, i, md, len, type, NULL))
+               return 0;
        OPENSSL_free(str);
        return(1);
        }
@@ -105,7 +105,8 @@ int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
        i=ASN1_item_i2d(asn,&str, it);
        if (!str) return(0);
 
-       EVP_Digest(str, i, md, len, type, NULL);
+       if (!EVP_Digest(str, i, md, len, type, NULL))
+               return 0;
        OPENSSL_free(str);
        return(1);
        }