summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/evp/mac_meth.c5
-rw-r--r--doc/man3/EVP_MAC.pod9
-rw-r--r--include/openssl/evp.h1
3 files changed, 14 insertions, 1 deletions
diff --git a/crypto/evp/mac_meth.c b/crypto/evp/mac_meth.c
index 983b2dbd2e..e2bb016c0f 100644
--- a/crypto/evp/mac_meth.c
+++ b/crypto/evp/mac_meth.c
@@ -173,6 +173,11 @@ const char *EVP_MAC_name(const EVP_MAC *mac)
return mac->name;
}
+const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac)
+{
+ return mac->prov;
+}
+
const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac)
{
if (mac->gettable_params == NULL)
diff --git a/doc/man3/EVP_MAC.pod b/doc/man3/EVP_MAC.pod
index 6723c9707b..ed38f912df 100644
--- a/doc/man3/EVP_MAC.pod
+++ b/doc/man3/EVP_MAC.pod
@@ -3,7 +3,7 @@
=head1 NAME
EVP_MAC, EVP_MAC_fetch, EVP_MAC_up_ref, EVP_MAC_free, EVP_MAC_name,
-EVP_MAC_get_params, EVP_MAC_gettable_params,
+EVP_MAC_provider, EVP_MAC_get_params, EVP_MAC_gettable_params,
EVP_MAC_CTX, EVP_MAC_CTX_new, EVP_MAC_CTX_free, EVP_MAC_CTX_dup,
EVP_MAC_CTX_mac, EVP_MAC_CTX_get_params, EVP_MAC_CTX_set_params,
EVP_MAC_size, EVP_MAC_init, EVP_MAC_update, EVP_MAC_final,
@@ -22,6 +22,7 @@ EVP_MAC_CTX_gettable_params, EVP_MAC_CTX_settable_params
int EVP_MAC_up_ref(EVP_MAC *mac);
void EVP_MAC_free(EVP_MAC *mac);
const char *EVP_MAC_name(const EVP_MAC *mac);
+ const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac);
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac);
@@ -152,6 +153,9 @@ EVP_MAC_size() returns the MAC output size for the given context.
EVP_MAC_name() returns the name of the given MAC implementation.
+EVP_MAC_provider() returns the provider that holds the implementation
+of the given I<mac>.
+
=head1 PARAMETER NAMES
The standard parameter names are:
@@ -239,6 +243,9 @@ EVP_MAC_free() returns nothing at all.
EVP_MAC_name() returns the name of the MAC, or NULL if NULL was
passed.
+EVP_MAC_provider() returns a pointer to the provider for the MAC, or
+NULL on error.
+
EVP_MAC_CTX_new() and EVP_MAC_CTX_dup() return a pointer to a newly
created EVP_MAC_CTX, or NULL if allocation failed.
diff --git a/include/openssl/evp.h b/include/openssl/evp.h
index c9b665dbbc..2956b0408c 100644
--- a/include/openssl/evp.h
+++ b/include/openssl/evp.h
@@ -1031,6 +1031,7 @@ EVP_MAC *EVP_MAC_fetch(OPENSSL_CTX *libctx, const char *algorithm,
int EVP_MAC_up_ref(EVP_MAC *mac);
void EVP_MAC_free(EVP_MAC *mac);
const char *EVP_MAC_name(const EVP_MAC *mac);
+const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac);
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac);