From: Dr. Stephen Henson Date: Thu, 26 Feb 2015 19:58:20 +0000 (+0000) Subject: Skip unsupported digests in evp_test X-Git-Tag: OpenSSL_1_1_0-pre1~1595 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=578ce42d354b1b0411e9069883c23c7770a567be;p=oweals%2Fopenssl.git Skip unsupported digests in evp_test Reviewed-by: Matt Caswell --- diff --git a/crypto/evp/evp_test.c b/crypto/evp/evp_test.c index 9726993163..44375bfa6a 100644 --- a/crypto/evp/evp_test.c +++ b/crypto/evp/evp_test.c @@ -290,6 +290,7 @@ static int setup_test(struct evp_test *t, const struct evp_test_method *tmeth) if (t->meth) { t->ntests++; if (t->skip) { + t->meth = tmeth; t->nskip++; return 1; } @@ -543,8 +544,14 @@ static int digest_test_init(struct evp_test *t, const char *alg) const EVP_MD *digest; struct digest_data *mdat = t->data; digest = EVP_get_digestbyname(alg); - if (!digest) + if (!digest) { + /* If alg has an OID assume disabled algorithm */ + if (OBJ_sn2nid(alg) != NID_undef || OBJ_ln2nid(alg) != NID_undef) { + t->skip = 1; + return 1; + } return 0; + } mdat = OPENSSL_malloc(sizeof(struct digest_data)); mdat->digest = digest; mdat->input = NULL;