-int EVP_MAC_final(EVP_MAC_CTX *ctx, unsigned char *out, size_t *poutlen);
-int EVP_MAC_ctrl(EVP_MAC_CTX *ctx, int cmd, ...);
-int EVP_MAC_vctrl(EVP_MAC_CTX *ctx, int cmd, va_list args);
-int EVP_MAC_ctrl_str(EVP_MAC_CTX *ctx, const char *type, const char *value);
-int EVP_MAC_str2ctrl(EVP_MAC_CTX *ctx, int cmd, const char *value);
-int EVP_MAC_hex2ctrl(EVP_MAC_CTX *ctx, int cmd, const char *value);
-int EVP_MAC_nid(const EVP_MAC *mac);
-
-# define EVP_get_macbynid(a) EVP_get_macbyname(OBJ_nid2sn(a))
-# define EVP_get_macbyobj(a) EVP_get_macbynid(OBJ_obj2nid(a))
-# define EVP_MAC_name(o) OBJ_nid2sn(EVP_MAC_nid(o))
-const EVP_MAC *EVP_get_macbyname(const char *name);
-void EVP_MAC_do_all(void (*fn)
- (const EVP_MAC *ciph, const char *from, const char *to,
- void *x), void *arg);
-void EVP_MAC_do_all_sorted(void (*fn)
- (const EVP_MAC *ciph, const char *from,
- const char *to, void *x), void *arg);
-
-# define EVP_MAC_CTRL_SET_KEY 0x01 /* unsigned char *, size_t */
-# define EVP_MAC_CTRL_SET_FLAGS 0x02 /* unsigned long */
-# define EVP_MAC_CTRL_SET_ENGINE 0x03 /* ENGINE * */
-# define EVP_MAC_CTRL_SET_MD 0x04 /* EVP_MD * */
-# define EVP_MAC_CTRL_SET_CIPHER 0x05 /* EVP_CIPHER * */
-# define EVP_MAC_CTRL_SET_SIZE 0x06 /* size_t */
-# define EVP_MAC_CTRL_SET_IV 0x07 /* unsigned char *, size_t */
-# define EVP_MAC_CTRL_SET_CUSTOM 0x08 /* unsigned char *, size_t */
-# define EVP_MAC_CTRL_SET_XOF 0x09 /* int */
-# define EVP_MAC_CTRL_SET_SALT 0x0a /* unsigned char *, size_t */
+int EVP_MAC_final(EVP_MAC_CTX *ctx,
+ unsigned char *out, size_t *outl, size_t outsize);
+const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac);
+const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac);
+const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac);
+
+void EVP_MAC_do_all_provided(OPENSSL_CTX *libctx,
+ void (*fn)(EVP_MAC *mac, void *arg),
+ void *arg);
+void EVP_MAC_names_do_all(const EVP_MAC *mac,
+ void (*fn)(const char *name, void *data),
+ void *data);