Implement EVP_MAC_do_all_ex()
[openssl.git] / crypto / evp / mac_meth.c
index 983b2dbd2ed98ef8d339698505fb9a03bdf7b4ee..e5eed33774ec480b4d4fdb2188f67d3c70c5706a 100644 (file)
@@ -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)
@@ -193,3 +198,12 @@ const OSSL_PARAM *EVP_MAC_CTX_settable_params(const EVP_MAC *mac)
         return NULL;
     return mac->settable_ctx_params();
 }
+
+void EVP_MAC_do_all_ex(OPENSSL_CTX *libctx,
+                       void (*fn)(EVP_MAC *mac, void *arg),
+                       void *arg)
+{
+    evp_generic_do_all(libctx, OSSL_OP_MAC,
+                       (void (*)(void *, void *))fn, arg,
+                       evp_mac_from_dispatch, evp_mac_free);
+}