From 578ce42d354b1b0411e9069883c23c7770a567be Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Thu, 26 Feb 2015 19:58:20 +0000 Subject: [PATCH] Skip unsupported digests in evp_test Reviewed-by: Matt Caswell --- crypto/evp/evp_test.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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;