summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2019-09-25 09:15:42 +0200
committerRichard Levitte <levitte@openssl.org>2019-10-01 22:51:00 +0200
commit776cb8358ebaea254d0537cf57cbafe65ac6f5cf (patch)
treedfeb6d1d249a342c8f9de032d520f4aa6eceafa9 /crypto
parent6ef81d388d78ad417f6fc5d02ef61b54995c5335 (diff)
Make EVP_CIPHER_is_a() work with legacy cipher implementations too
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10008)
Diffstat (limited to 'crypto')
-rw-r--r--crypto/evp/evp_lib.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c
index 5c935075dc..3abea33d19 100644
--- a/crypto/evp/evp_lib.c
+++ b/crypto/evp/evp_lib.c
@@ -504,6 +504,13 @@ int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx)
int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name)
{
+#ifndef FIPS_MODE
+ if (cipher->prov == NULL) {
+ int nid = EVP_CIPHER_nid(cipher);
+
+ return nid == OBJ_sn2nid(name) || nid == OBJ_ln2nid(name);
+ }
+#endif
return evp_is_a(cipher->prov, cipher->name_id, name);
}