summaryrefslogtreecommitdiffstats
path: root/crypto/evp/kdf_lib.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2019-09-23 10:56:13 +0200
committerRichard Levitte <levitte@openssl.org>2019-10-17 09:16:45 +0200
commitf651c727f85813085355bb207cf913288108ed79 (patch)
tree0eceb269b851cf095712b5332d4b222beb1c6fb3 /crypto/evp/kdf_lib.c
parent251e610ce4479913e593f9f7a9a711115e6cf1a3 (diff)
EVP: add name traversal functions to all fetchable types
The following new functions all do the same thing; they traverse the set of names assigned to implementations of each algorithm type: EVP_MD_names_do_all(), EVP_CIPHER_names_do_all(), EVP_MAC_names_do_all(), EVP_KEYMGMT_names_do_all(), EVP_KEYEXCH_names_do_all(), EVP_KDF_names_do_all(), EVP_SIGNATURE_names_do_all() We add a warning to the documentation of EVP_CIPHER_name() and EVP_MD_name(), as they aren't suitable to use with multiple-name implementation. We also remove EVP_MAC_name() and evp_KDF_name(), as they serve no useful purpose. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9979)
Diffstat (limited to 'crypto/evp/kdf_lib.c')
-rw-r--r--crypto/evp/kdf_lib.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/crypto/evp/kdf_lib.c b/crypto/evp/kdf_lib.c
index b85f0e0eb8..90c43e984a 100644
--- a/crypto/evp/kdf_lib.c
+++ b/crypto/evp/kdf_lib.c
@@ -83,11 +83,6 @@ EVP_KDF_CTX *EVP_KDF_CTX_dup(const EVP_KDF_CTX *src)
return dst;
}
-const char *EVP_KDF_name(const EVP_KDF *kdf)
-{
- return evp_first_name(kdf->prov, kdf->name_id);
-}
-
int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name)
{
return evp_is_a(kdf->prov, kdf->name_id, name);
@@ -164,3 +159,11 @@ int EVP_KDF_CTX_set_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[])
return ctx->meth->set_ctx_params(ctx->data, params);
return 1;
}
+
+void EVP_KDF_names_do_all(const EVP_KDF *kdf,
+ void (*fn)(const char *name, void *data),
+ void *data)
+{
+ if (kdf->prov != NULL)
+ evp_names_do_all(kdf->prov, kdf->name_id, fn, data);
+}