#include <openssl/dh.h>
#include <openssl/err.h>
#include <openssl/params.h>
+#include "prov/providercommon.h"
#include "prov/implementations.h"
#include "prov/provider_ctx.h"
#include "crypto/dh.h"
static void *dh_newctx(void *provctx)
{
- PROV_DH_CTX *pdhctx = OPENSSL_zalloc(sizeof(PROV_DH_CTX));
+ PROV_DH_CTX *pdhctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
+ pdhctx = OPENSSL_zalloc(sizeof(PROV_DH_CTX));
if (pdhctx == NULL)
return NULL;
pdhctx->libctx = PROV_LIBRARY_CONTEXT_OF(provctx);
{
PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
- if (pdhctx == NULL || vdh == NULL || !DH_up_ref(vdh))
+ if (!ossl_prov_is_running()
+ || pdhctx == NULL
+ || vdh == NULL
+ || !DH_up_ref(vdh))
return 0;
DH_free(pdhctx->dh);
pdhctx->dh = vdh;
{
PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
- if (pdhctx == NULL || vdh == NULL || !DH_up_ref(vdh))
+ if (!ossl_prov_is_running()
+ || pdhctx == NULL
+ || vdh == NULL
+ || !DH_up_ref(vdh))
return 0;
DH_free(pdhctx->dhpeer);
pdhctx->dhpeer = vdh;
{
PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
+ if (!ossl_prov_is_running())
+ return 0;
+
switch (pdhctx->kdf_type) {
case PROV_DH_KDF_NONE:
return dh_plain_derive(pdhctx, secret, psecretlen, outlen);
PROV_DH_CTX *srcctx = (PROV_DH_CTX *)vpdhctx;
PROV_DH_CTX *dstctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
if (dstctx == NULL)
return NULL;
#include <openssl/params.h>
#include <openssl/err.h>
#include "prov/provider_ctx.h"
+#include "prov/providercommon.h"
#include "prov/implementations.h"
#include "crypto/ec.h" /* ecdh_KDF_X9_63() */
static
void *ecdh_newctx(void *provctx)
{
- PROV_ECDH_CTX *pectx = OPENSSL_zalloc(sizeof(*pectx));
+ PROV_ECDH_CTX *pectx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
+ pectx = OPENSSL_zalloc(sizeof(*pectx));
if (pectx == NULL)
return NULL;
{
PROV_ECDH_CTX *pecdhctx = (PROV_ECDH_CTX *)vpecdhctx;
- if (pecdhctx == NULL || vecdh == NULL || !EC_KEY_up_ref(vecdh))
+ if (!ossl_prov_is_running()
+ || pecdhctx == NULL
+ || vecdh == NULL
+ || !EC_KEY_up_ref(vecdh))
return 0;
EC_KEY_free(pecdhctx->k);
pecdhctx->k = vecdh;
{
PROV_ECDH_CTX *pecdhctx = (PROV_ECDH_CTX *)vpecdhctx;
- if (pecdhctx == NULL || vecdh == NULL || !EC_KEY_up_ref(vecdh))
+ if (!ossl_prov_is_running()
+ || pecdhctx == NULL
+ || vecdh == NULL
+ || !EC_KEY_up_ref(vecdh))
return 0;
EC_KEY_free(pecdhctx->peerk);
pecdhctx->peerk = vecdh;
PROV_ECDH_CTX *srcctx = (PROV_ECDH_CTX *)vpecdhctx;
PROV_ECDH_CTX *dstctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
if (dstctx == NULL)
return NULL;
#include "internal/cryptlib.h"
#include "crypto/ecx.h"
#include "prov/implementations.h"
+#include "prov/providercommon.h"
#include "prov/providercommonerr.h"
#ifdef S390X_EC_ASM
# include "s390x_arch.h"
static void *ecx_newctx(void *provctx, size_t keylen)
{
- PROV_ECX_CTX *ctx = OPENSSL_zalloc(sizeof(PROV_ECX_CTX));
+ PROV_ECX_CTX *ctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
+ ctx = OPENSSL_zalloc(sizeof(PROV_ECX_CTX));
if (ctx == NULL) {
ERR_raise(ERR_LIB_PROV, ERR_R_MALLOC_FAILURE);
return NULL;
PROV_ECX_CTX *ecxctx = (PROV_ECX_CTX *)vecxctx;
ECX_KEY *key = vkey;
+ if (!ossl_prov_is_running())
+ return 0;
+
if (ecxctx == NULL
|| key == NULL
|| key->keylen != ecxctx->keylen
PROV_ECX_CTX *ecxctx = (PROV_ECX_CTX *)vecxctx;
ECX_KEY *key = vkey;
+ if (!ossl_prov_is_running())
+ return 0;
+
if (ecxctx == NULL
|| key == NULL
|| key->keylen != ecxctx->keylen
{
PROV_ECX_CTX *ecxctx = (PROV_ECX_CTX *)vecxctx;
+ if (!ossl_prov_is_running())
+ return 0;
+
if (ecxctx->key == NULL
|| ecxctx->key->privkey == NULL
|| ecxctx->peerkey == NULL) {
PROV_ECX_CTX *srcctx = (PROV_ECX_CTX *)vecxctx;
PROV_ECX_CTX *dstctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
if (dstctx == NULL) {
ERR_raise(ERR_LIB_PROV, ERR_R_MALLOC_FAILURE);
#include "prov/implementations.h"
#include "prov/provider_ctx.h"
#include "prov/kdfexchange.h"
+#include "prov/providercommon.h"
static OSSL_FUNC_keyexch_newctx_fn kdf_tls1_prf_newctx;
static OSSL_FUNC_keyexch_newctx_fn kdf_hkdf_newctx;
static void *kdf_newctx(const char *kdfname, void *provctx)
{
- PROV_KDF_CTX *kdfctx = OPENSSL_zalloc(sizeof(PROV_KDF_CTX));
+ PROV_KDF_CTX *kdfctx;
EVP_KDF *kdf = NULL;
+ if (!ossl_prov_is_running())
+ return NULL;
+
+ kdfctx = OPENSSL_zalloc(sizeof(PROV_KDF_CTX));
if (kdfctx == NULL)
return NULL;
{
PROV_KDF_CTX *pkdfctx = (PROV_KDF_CTX *)vpkdfctx;
- if (pkdfctx == NULL || vkdf == NULL || !kdf_data_up_ref(vkdf))
+ if (!ossl_prov_is_running()
+ || pkdfctx == NULL
+ || vkdf == NULL
+ || !kdf_data_up_ref(vkdf))
return 0;
pkdfctx->kdfdata = vkdf;
{
PROV_KDF_CTX *pkdfctx = (PROV_KDF_CTX *)vpkdfctx;
+ if (!ossl_prov_is_running())
+ return 0;
return EVP_KDF_derive(pkdfctx->kdfctx, secret, *secretlen);
}
PROV_KDF_CTX *srcctx = (PROV_KDF_CTX *)vpkdfctx;
PROV_KDF_CTX *dstctx;
+ if (!ossl_prov_is_running())
+ return NULL;
+
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
if (dstctx == NULL)
return NULL;