#include "prov/implementations.h"
#include "prov/provider_ctx.h"
#include "prov/macsignature.h"
+#include "prov/providercommon.h"
static OSSL_FUNC_signature_newctx_fn mac_hmac_newctx;
static OSSL_FUNC_signature_newctx_fn mac_siphash_newctx;
static void *mac_newctx(void *provctx, const char *propq, const char *macname)
{
- PROV_MAC_CTX *pmacctx = OPENSSL_zalloc(sizeof(PROV_MAC_CTX));
+ PROV_MAC_CTX *pmacctx;
EVP_MAC *mac = NULL;
+ if (!ossl_prov_is_running())
+ return NULL;
+
+ pmacctx = OPENSSL_zalloc(sizeof(PROV_MAC_CTX));
if (pmacctx == NULL)
return NULL;
PROV_MAC_CTX *pmacctx = (PROV_MAC_CTX *)vpmacctx;
const char *ciphername = NULL, *engine = NULL;
- if (pmacctx == NULL || vkey == NULL || !mac_key_up_ref(vkey))
+ if (!ossl_prov_is_running()
+ || pmacctx == NULL
+ || vkey == NULL
+ || !mac_key_up_ref(vkey))
return 0;
mac_key_free(pmacctx->key);
{
PROV_MAC_CTX *pmacctx = (PROV_MAC_CTX *)vpmacctx;
- if (pmacctx == NULL || pmacctx->macctx == NULL)
+ if (!ossl_prov_is_running() || pmacctx == NULL || pmacctx->macctx == NULL)
return 0;
return EVP_MAC_final(pmacctx->macctx, mac, maclen, macsize);
PROV_MAC_CTX *srcctx = (PROV_MAC_CTX *)vpmacctx;
PROV_MAC_CTX *dstctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
if (dstctx == NULL)
return NULL;