Merge pull request #7284 from douzzer/20240229-mutex-initializer-global-refactor

20240229-mutex-initializer-global-refactor
This commit is contained in:
Eric Blankenhorn
2024-03-01 16:43:10 -06:00
committed by GitHub
18 changed files with 392 additions and 116 deletions

View File

@@ -800,6 +800,7 @@
*/ */
#include <linux/mutex.h> #include <linux/mutex.h>
typedef struct mutex wolfSSL_Mutex; typedef struct mutex wolfSSL_Mutex;
#define WOLFSSL_MUTEX_INITIALIZER(lockname) __MUTEX_INITIALIZER(lockname)
/* prevent gcc's mm_malloc.h from being included, since it unconditionally /* prevent gcc's mm_malloc.h from being included, since it unconditionally
* includes stdlib.h, which is kernel-incompatible. * includes stdlib.h, which is kernel-incompatible.

View File

@@ -447,7 +447,6 @@ typedef struct SnifferServer {
struct SnifferServer* next; /* for list */ struct SnifferServer* next; /* for list */
} SnifferServer; } SnifferServer;
/* Session Flags */ /* Session Flags */
typedef struct Flags { typedef struct Flags {
byte side; /* which end is current packet headed */ byte side; /* which end is current packet headed */
@@ -569,13 +568,13 @@ typedef struct SnifferSession {
/* Sniffer Server List and mutex */ /* Sniffer Server List and mutex */
static THREAD_LS_T WOLFSSL_GLOBAL SnifferServer* ServerList = NULL; static THREAD_LS_T WOLFSSL_GLOBAL SnifferServer* ServerList = NULL;
#ifndef HAVE_C___ATOMIC #ifndef HAVE_C___ATOMIC
static WOLFSSL_GLOBAL wolfSSL_Mutex ServerListMutex; static WOLFSSL_GLOBAL wolfSSL_Mutex ServerListMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(ServerListMutex);
#endif #endif
/* Session Hash Table, mutex, and count */ /* Session Hash Table, mutex, and count */
static THREAD_LS_T WOLFSSL_GLOBAL SnifferSession* SessionTable[HASH_SIZE]; static THREAD_LS_T WOLFSSL_GLOBAL SnifferSession* SessionTable[HASH_SIZE];
#ifndef HAVE_C___ATOMIC #ifndef HAVE_C___ATOMIC
static WOLFSSL_GLOBAL wolfSSL_Mutex SessionMutex; static WOLFSSL_GLOBAL wolfSSL_Mutex SessionMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(SessionMutex);
#endif #endif
static THREAD_LS_T WOLFSSL_GLOBAL int SessionCount = 0; static THREAD_LS_T WOLFSSL_GLOBAL int SessionCount = 0;
@@ -584,7 +583,7 @@ static WOLFSSL_GLOBAL int MaxRecoveryMemory = -1;
/* per session max recovery memory */ /* per session max recovery memory */
#ifndef WOLFSSL_SNIFFER_NO_RECOVERY #ifndef WOLFSSL_SNIFFER_NO_RECOVERY
/* Recovery of missed data switches and stats */ /* Recovery of missed data switches and stats */
static WOLFSSL_GLOBAL wolfSSL_Mutex RecoveryMutex; /* for stats */ static WOLFSSL_GLOBAL wolfSSL_Mutex RecoveryMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(RecoveryMutex); /* for stats */
/* # of sessions with missed data */ /* # of sessions with missed data */
static WOLFSSL_GLOBAL word32 MissedDataSessions = 0; static WOLFSSL_GLOBAL word32 MissedDataSessions = 0;
#endif #endif
@@ -596,7 +595,7 @@ static WOLFSSL_GLOBAL void* ConnectionCbCtx = NULL;
#ifdef WOLFSSL_SNIFFER_STATS #ifdef WOLFSSL_SNIFFER_STATS
/* Sessions Statistics */ /* Sessions Statistics */
static WOLFSSL_GLOBAL SSLStats SnifferStats; static WOLFSSL_GLOBAL SSLStats SnifferStats;
static WOLFSSL_GLOBAL wolfSSL_Mutex StatsMutex; static WOLFSSL_GLOBAL wolfSSL_Mutex StatsMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(StatsMutex);
#endif #endif
#ifdef WOLFSSL_SNIFFER_KEY_CALLBACK #ifdef WOLFSSL_SNIFFER_KEY_CALLBACK
@@ -683,6 +682,7 @@ static int addKeyLogSnifferServerHelper(const char* address,
void ssl_InitSniffer_ex(int devId) void ssl_InitSniffer_ex(int devId)
{ {
wolfSSL_Init(); wolfSSL_Init();
#ifndef WOLFSSL_MUTEX_INITIALIZER
#ifndef HAVE_C___ATOMIC #ifndef HAVE_C___ATOMIC
wc_InitMutex(&ServerListMutex); wc_InitMutex(&ServerListMutex);
wc_InitMutex(&SessionMutex); wc_InitMutex(&SessionMutex);
@@ -694,6 +694,11 @@ void ssl_InitSniffer_ex(int devId)
XMEMSET(&SnifferStats, 0, sizeof(SSLStats)); XMEMSET(&SnifferStats, 0, sizeof(SSLStats));
wc_InitMutex(&StatsMutex); wc_InitMutex(&StatsMutex);
#endif #endif
#endif /* !WOLFSSL_MUTEX_INITIALIZER */
#ifdef WOLFSSL_SNIFFER_STATS
XMEMSET(&SnifferStats, 0, sizeof(SSLStats));
#endif
#if defined(WOLF_CRYPTO_CB) || defined(WOLFSSL_ASYNC_CRYPT) #if defined(WOLF_CRYPTO_CB) || defined(WOLFSSL_ASYNC_CRYPT)
CryptoDeviceId = devId; CryptoDeviceId = devId;
#endif #endif
@@ -903,6 +908,7 @@ void ssl_FreeSniffer(void)
#endif /* WOLFSSL_SNIFFER_KEYLOGFILE */ #endif /* WOLFSSL_SNIFFER_KEYLOGFILE */
#ifndef WOLFSSL_MUTEX_INITIALIZER
#ifndef WOLFSSL_SNIFFER_NO_RECOVERY #ifndef WOLFSSL_SNIFFER_NO_RECOVERY
wc_FreeMutex(&RecoveryMutex); wc_FreeMutex(&RecoveryMutex);
#endif #endif
@@ -910,6 +916,7 @@ void ssl_FreeSniffer(void)
wc_FreeMutex(&SessionMutex); wc_FreeMutex(&SessionMutex);
wc_FreeMutex(&ServerListMutex); wc_FreeMutex(&ServerListMutex);
#endif #endif
#endif /* !WOLFSSL_MUTEX_INITIALIZER */
#ifdef WOLF_CRYPTO_CB #ifdef WOLF_CRYPTO_CB
#ifdef HAVE_INTEL_QA_SYNC #ifdef HAVE_INTEL_QA_SYNC
@@ -7235,7 +7242,7 @@ static THREAD_LS_T WOLFSSL_GLOBAL
SecretNode* SecretNode*
secretHashTable[WOLFSSL_SNIFFER_KEYLOGFILE_HASH_TABLE_SIZE] = {NULL}; secretHashTable[WOLFSSL_SNIFFER_KEYLOGFILE_HASH_TABLE_SIZE] = {NULL};
#ifndef HAVE_C___ATOMIC #ifndef HAVE_C___ATOMIC
static WOLFSSL_GLOBAL wolfSSL_Mutex secretListMutex; static WOLFSSL_GLOBAL wolfSSL_Mutex secretListMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(secretListMutex);
#endif #endif
static unsigned int secretHashFunction(unsigned char* clientRandom); static unsigned int secretHashFunction(unsigned char* clientRandom);

100
src/ssl.c
View File

@@ -309,8 +309,10 @@ int wc_OBJ_sn2nid(const char *sn)
static WC_RNG globalRNG; static WC_RNG globalRNG;
static int initGlobalRNG = 0; static int initGlobalRNG = 0;
static wolfSSL_Mutex globalRNGMutex; static WC_MAYBE_UNUSED wolfSSL_Mutex globalRNGMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(globalRNGMutex);
#ifndef WOLFSSL_MUTEX_INITIALIZER
static int globalRNGMutex_valid = 0; static int globalRNGMutex_valid = 0;
#endif
#if defined(OPENSSL_EXTRA) && defined(HAVE_HASHDRBG) #if defined(OPENSSL_EXTRA) && defined(HAVE_HASHDRBG)
static WOLFSSL_DRBG_CTX* gDrbgDefCtx = NULL; static WOLFSSL_DRBG_CTX* gDrbgDefCtx = NULL;
@@ -406,8 +408,10 @@ WC_RNG* wolfssl_make_rng(WC_RNG* rng, int* local)
* OPENSSL_EXTRA where RAND callbacks are not used */ * OPENSSL_EXTRA where RAND callbacks are not used */
#ifndef WOLFSSL_NO_OPENSSL_RAND_CB #ifndef WOLFSSL_NO_OPENSSL_RAND_CB
static const WOLFSSL_RAND_METHOD* gRandMethods = NULL; static const WOLFSSL_RAND_METHOD* gRandMethods = NULL;
static wolfSSL_Mutex gRandMethodMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(gRandMethodMutex);
#ifndef WOLFSSL_MUTEX_INITIALIZER
static int gRandMethodsInit = 0; static int gRandMethodsInit = 0;
static wolfSSL_Mutex gRandMethodMutex; #endif
#endif /* !WOLFSSL_NO_OPENSSL_RAND_CB */ #endif /* !WOLFSSL_NO_OPENSSL_RAND_CB */
#endif /* OPENSSL_EXTRA */ #endif /* OPENSSL_EXTRA */
@@ -1265,11 +1269,9 @@ int wolfSSL_send_session(WOLFSSL* ssl)
/* prevent multiple mutex initializations */ /* prevent multiple mutex initializations */
static volatile WOLFSSL_GLOBAL int initRefCount = 0; static volatile WOLFSSL_GLOBAL int initRefCount = 0;
#ifdef WOLFSSL_MUTEX_INITIALIZER static WOLFSSL_GLOBAL wolfSSL_Mutex inits_count_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(inits_count_mutex); /* init ref count mutex */
static WOLFSSL_GLOBAL wolfSSL_Mutex count_mutex = WOLFSSL_MUTEX_INITIALIZER; #ifndef WOLFSSL_MUTEX_INITIALIZER
#else static WOLFSSL_GLOBAL int inits_count_mutex_valid = 0;
static WOLFSSL_GLOBAL wolfSSL_Mutex count_mutex; /* init ref count mutex */
static WOLFSSL_GLOBAL int count_mutex_valid = 0;
#endif #endif
/* Create a new WOLFSSL_CTX struct and return the pointer to created struct. /* Create a new WOLFSSL_CTX struct and return the pointer to created struct.
@@ -6164,8 +6166,10 @@ int AddCA(WOLFSSL_CERT_MANAGER* cm, DerBuffer** pDer, int type, int verify)
/* Client Cache */ /* Client Cache */
/* uses session mutex */ /* uses session mutex */
static WOLFSSL_GLOBAL wolfSSL_Mutex clisession_mutex; /* ClientCache mutex */ static WOLFSSL_GLOBAL wolfSSL_Mutex clisession_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(clisession_mutex); /* ClientCache mutex */
#ifndef WOLFSSL_MUTEX_INITIALIZER
static WOLFSSL_GLOBAL int clisession_mutex_valid = 0; static WOLFSSL_GLOBAL int clisession_mutex_valid = 0;
#endif
#endif /* !NO_CLIENT_CACHE */ #endif /* !NO_CLIENT_CACHE */
void EvictSessionFromCache(WOLFSSL_SESSION* session) void EvictSessionFromCache(WOLFSSL_SESSION* session)
@@ -6223,22 +6227,40 @@ int wolfSSL_Init(void)
WOLFSSL_ENTER("wolfSSL_Init"); WOLFSSL_ENTER("wolfSSL_Init");
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (inits_count_mutex_valid == 0) {
if (wc_InitMutex(&inits_count_mutex) != 0) {
WOLFSSL_MSG("Bad Init Mutex count");
return BAD_MUTEX_E;
}
else {
inits_count_mutex_valid = 1;
}
}
#endif /* !WOLFSSL_MUTEX_INITIALIZER */
if (wc_LockMutex(&inits_count_mutex) != 0) {
WOLFSSL_MSG("Bad Lock Mutex count");
return BAD_MUTEX_E;
}
if ((ret == WOLFSSL_SUCCESS) && (initRefCount == 0)) {
/* Initialize crypto for use with TLS connection */
#if FIPS_VERSION_GE(5,1) #if FIPS_VERSION_GE(5,1)
ret = wolfCrypt_SetPrivateKeyReadEnable_fips(1, WC_KEYTYPE_ALL); ret = wolfCrypt_SetPrivateKeyReadEnable_fips(1, WC_KEYTYPE_ALL);
if (ret != 0) if (ret == 0)
return ret;
else
ret = WOLFSSL_SUCCESS; ret = WOLFSSL_SUCCESS;
#endif #endif
if (initRefCount == 0) { if (ret == WOLFSSL_SUCCESS) {
/* Initialize crypto for use with TLS connection */ if (wolfCrypt_Init() != 0) {
if (wolfCrypt_Init() != 0) { WOLFSSL_MSG("Bad wolfCrypt Init");
WOLFSSL_MSG("Bad wolfCrypt Init"); ret = WC_INIT_E;
ret = WC_INIT_E; }
} }
#ifdef HAVE_GLOBAL_RNG #if defined(HAVE_GLOBAL_RNG) && !defined(WOLFSSL_MUTEX_INITIALIZER)
if (ret == WOLFSSL_SUCCESS) { if (ret == WOLFSSL_SUCCESS) {
if (wc_InitMutex(&globalRNGMutex) != 0) { if (wc_InitMutex(&globalRNGMutex) != 0) {
WOLFSSL_MSG("Bad Init Mutex rng"); WOLFSSL_MSG("Bad Init Mutex rng");
@@ -6293,6 +6315,7 @@ int wolfSSL_Init(void)
} }
#endif #endif
#ifndef NO_CLIENT_CACHE #ifndef NO_CLIENT_CACHE
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (ret == WOLFSSL_SUCCESS) { if (ret == WOLFSSL_SUCCESS) {
if (wc_InitMutex(&clisession_mutex) != 0) { if (wc_InitMutex(&clisession_mutex) != 0) {
WOLFSSL_MSG("Bad Init Mutex session"); WOLFSSL_MSG("Bad Init Mutex session");
@@ -6302,19 +6325,9 @@ int wolfSSL_Init(void)
clisession_mutex_valid = 1; clisession_mutex_valid = 1;
} }
} }
#endif
#endif #endif
#endif #endif
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (ret == WOLFSSL_SUCCESS) {
if (wc_InitMutex(&count_mutex) != 0) {
WOLFSSL_MSG("Bad Init Mutex count");
ret = BAD_MUTEX_E;
}
else {
count_mutex_valid = 1;
}
}
#endif /* !WOLFSSL_MUTEX_INITIALIZER */
#if defined(OPENSSL_EXTRA) && defined(HAVE_ATEXIT) #if defined(OPENSSL_EXTRA) && defined(HAVE_ATEXIT)
/* OpenSSL registers cleanup using atexit */ /* OpenSSL registers cleanup using atexit */
if ((ret == WOLFSSL_SUCCESS) && (atexit(AtExitCleanup) != 0)) { if ((ret == WOLFSSL_SUCCESS) && (atexit(AtExitCleanup) != 0)) {
@@ -6325,16 +6338,11 @@ int wolfSSL_Init(void)
} }
if (ret == WOLFSSL_SUCCESS) { if (ret == WOLFSSL_SUCCESS) {
if (wc_LockMutex(&count_mutex) != 0) { initRefCount++;
WOLFSSL_MSG("Bad Lock Mutex count");
ret = BAD_MUTEX_E;
}
else {
initRefCount++;
wc_UnLockMutex(&count_mutex);
}
} }
wc_UnLockMutex(&inits_count_mutex);
if (ret != WOLFSSL_SUCCESS) { if (ret != WOLFSSL_SUCCESS) {
initRefCount = 1; /* Force cleanup */ initRefCount = 1; /* Force cleanup */
(void)wolfSSL_Cleanup(); /* Ignore any error from cleanup */ (void)wolfSSL_Cleanup(); /* Ignore any error from cleanup */
@@ -13620,9 +13628,9 @@ int wolfSSL_Cleanup(void)
WOLFSSL_ENTER("wolfSSL_Cleanup"); WOLFSSL_ENTER("wolfSSL_Cleanup");
#ifndef WOLFSSL_MUTEX_INITIALIZER #ifndef WOLFSSL_MUTEX_INITIALIZER
if (count_mutex_valid == 1) { if (inits_count_mutex_valid == 1) {
#endif #endif
if (wc_LockMutex(&count_mutex) != 0) { if (wc_LockMutex(&inits_count_mutex) != 0) {
WOLFSSL_MSG("Bad Lock Mutex count"); WOLFSSL_MSG("Bad Lock Mutex count");
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
@@ -13637,9 +13645,9 @@ int wolfSSL_Cleanup(void)
} }
#ifndef WOLFSSL_MUTEX_INITIALIZER #ifndef WOLFSSL_MUTEX_INITIALIZER
if (count_mutex_valid == 1) { if (inits_count_mutex_valid == 1) {
#endif #endif
wc_UnLockMutex(&count_mutex); wc_UnLockMutex(&inits_count_mutex);
#ifndef WOLFSSL_MUTEX_INITIALIZER #ifndef WOLFSSL_MUTEX_INITIALIZER
} }
#endif #endif
@@ -13683,6 +13691,7 @@ int wolfSSL_Cleanup(void)
} }
} }
#ifndef NO_CLIENT_CACHE #ifndef NO_CLIENT_CACHE
#ifndef WOLFSSL_MUTEX_INITIALIZER
if ((clisession_mutex_valid == 1) && if ((clisession_mutex_valid == 1) &&
(wc_FreeMutex(&clisession_mutex) != 0)) { (wc_FreeMutex(&clisession_mutex) != 0)) {
if (ret == WOLFSSL_SUCCESS) if (ret == WOLFSSL_SUCCESS)
@@ -13690,14 +13699,15 @@ int wolfSSL_Cleanup(void)
} }
clisession_mutex_valid = 0; clisession_mutex_valid = 0;
#endif #endif
#endif
#endif /* !NO_SESSION_CACHE */ #endif /* !NO_SESSION_CACHE */
#ifndef WOLFSSL_MUTEX_INITIALIZER #ifndef WOLFSSL_MUTEX_INITIALIZER
if ((count_mutex_valid == 1) && (wc_FreeMutex(&count_mutex) != 0)) { if ((inits_count_mutex_valid == 1) && (wc_FreeMutex(&inits_count_mutex) != 0)) {
if (ret == WOLFSSL_SUCCESS) if (ret == WOLFSSL_SUCCESS)
ret = BAD_MUTEX_E; ret = BAD_MUTEX_E;
} }
count_mutex_valid = 0; inits_count_mutex_valid = 0;
#endif #endif
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
@@ -13718,11 +13728,13 @@ int wolfSSL_Cleanup(void)
#endif #endif
#ifdef HAVE_GLOBAL_RNG #ifdef HAVE_GLOBAL_RNG
#ifndef WOLFSSL_MUTEX_INITIALIZER
if ((globalRNGMutex_valid == 1) && (wc_FreeMutex(&globalRNGMutex) != 0)) { if ((globalRNGMutex_valid == 1) && (wc_FreeMutex(&globalRNGMutex) != 0)) {
if (ret == WOLFSSL_SUCCESS) if (ret == WOLFSSL_SUCCESS)
ret = BAD_MUTEX_E; ret = BAD_MUTEX_E;
} }
globalRNGMutex_valid = 0; globalRNGMutex_valid = 0;
#endif /* !WOLFSSL_MUTEX_INITIALIZER */
#if defined(OPENSSL_EXTRA) && defined(HAVE_HASHDRBG) #if defined(OPENSSL_EXTRA) && defined(HAVE_HASHDRBG)
wolfSSL_FIPS_drbg_free(gDrbgDefCtx); wolfSSL_FIPS_drbg_free(gDrbgDefCtx);
@@ -32949,6 +32961,7 @@ void wolfSSL_BUF_MEM_free(WOLFSSL_BUF_MEM* buf)
#if defined(OPENSSL_EXTRA) && !defined(WOLFSSL_NO_OPENSSL_RAND_CB) #if defined(OPENSSL_EXTRA) && !defined(WOLFSSL_NO_OPENSSL_RAND_CB)
static int wolfSSL_RAND_InitMutex(void) static int wolfSSL_RAND_InitMutex(void)
{ {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (gRandMethodsInit == 0) { if (gRandMethodsInit == 0) {
if (wc_InitMutex(&gRandMethodMutex) != 0) { if (wc_InitMutex(&gRandMethodMutex) != 0) {
WOLFSSL_MSG("Bad Init Mutex rand methods"); WOLFSSL_MSG("Bad Init Mutex rand methods");
@@ -32956,6 +32969,7 @@ static int wolfSSL_RAND_InitMutex(void)
} }
gRandMethodsInit = 1; gRandMethodsInit = 1;
} }
#endif
return 0; return 0;
} }
#endif #endif
@@ -33327,8 +33341,10 @@ void wolfSSL_RAND_Cleanup(void)
wc_UnLockMutex(&gRandMethodMutex); wc_UnLockMutex(&gRandMethodMutex);
} }
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (wc_FreeMutex(&gRandMethodMutex) == 0) if (wc_FreeMutex(&gRandMethodMutex) == 0)
gRandMethodsInit = 0; gRandMethodsInit = 0;
#endif
#endif #endif
#ifdef HAVE_GLOBAL_RNG #ifdef HAVE_GLOBAL_RNG
if (wc_LockMutex(&globalRNGMutex) == 0) { if (wc_LockMutex(&globalRNGMutex) == 0) {

View File

@@ -1488,7 +1488,7 @@ static int xil_mpi_import(mp_int *mpi,
/* cache (mp_int) of the curve parameters */ /* cache (mp_int) of the curve parameters */
static ecc_curve_spec* ecc_curve_spec_cache[ECC_SET_COUNT]; static ecc_curve_spec* ecc_curve_spec_cache[ECC_SET_COUNT];
#ifndef SINGLE_THREADED #ifndef SINGLE_THREADED
static wolfSSL_Mutex ecc_curve_cache_mutex; static wolfSSL_Mutex ecc_curve_cache_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(ecc_curve_cache_mutex);
#endif #endif
#define DECLARE_CURVE_SPECS(intcount) ecc_curve_spec* curve = NULL #define DECLARE_CURVE_SPECS(intcount) ecc_curve_spec* curve = NULL
@@ -1758,7 +1758,8 @@ static int wc_ecc_curve_load(const ecc_set_type* dp, ecc_curve_spec** pCurve,
int wc_ecc_curve_cache_init(void) int wc_ecc_curve_cache_init(void)
{ {
int ret = 0; int ret = 0;
#if defined(ECC_CACHE_CURVE) && !defined(SINGLE_THREADED) #if defined(ECC_CACHE_CURVE) && !defined(SINGLE_THREADED) && \
!defined(WOLFSSL_MUTEX_INITIALIZER)
ret = wc_InitMutex(&ecc_curve_cache_mutex); ret = wc_InitMutex(&ecc_curve_cache_mutex);
#endif #endif
return ret; return ret;
@@ -1777,7 +1778,8 @@ void wc_ecc_curve_cache_free(void)
} }
} }
#if defined(ECC_CACHE_CURVE) && !defined(SINGLE_THREADED) #if defined(ECC_CACHE_CURVE) && !defined(SINGLE_THREADED) && \
!defined(WOLFSSL_MUTEX_INITIALIZER)
wc_FreeMutex(&ecc_curve_cache_mutex); wc_FreeMutex(&ecc_curve_cache_mutex);
#endif #endif
} }
@@ -11598,8 +11600,10 @@ typedef struct {
static THREAD_LS_T fp_cache_t fp_cache[FP_ENTRIES]; static THREAD_LS_T fp_cache_t fp_cache[FP_ENTRIES];
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
static wolfSSL_Mutex ecc_fp_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(ecc_fp_lock);
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initMutex = 0; /* prevent multiple mutex inits */ static volatile int initMutex = 0; /* prevent multiple mutex inits */
static wolfSSL_Mutex ecc_fp_lock; #endif
#endif /* HAVE_THREAD_LS */ #endif /* HAVE_THREAD_LS */
/* simple table to help direct the generation of the LUT */ /* simple table to help direct the generation of the LUT */
@@ -12886,10 +12890,12 @@ int ecc_mul2add(ecc_point* A, mp_int* kA,
} }
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */ if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */
wc_InitMutex(&ecc_fp_lock); wc_InitMutex(&ecc_fp_lock);
initMutex = 1; initMutex = 1;
} }
#endif
if (wc_LockMutex(&ecc_fp_lock) != 0) { if (wc_LockMutex(&ecc_fp_lock) != 0) {
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
@@ -13044,10 +13050,12 @@ int wc_ecc_mulmod_ex(const mp_int* k, ecc_point *G, ecc_point *R, mp_int* a,
} }
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */ if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */
wc_InitMutex(&ecc_fp_lock); wc_InitMutex(&ecc_fp_lock);
initMutex = 1; initMutex = 1;
} }
#endif
if (wc_LockMutex(&ecc_fp_lock) != 0) { if (wc_LockMutex(&ecc_fp_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
@@ -13219,10 +13227,12 @@ int wc_ecc_mulmod_ex2(const mp_int* k, ecc_point *G, ecc_point *R, mp_int* a,
} }
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */ if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */
wc_InitMutex(&ecc_fp_lock); wc_InitMutex(&ecc_fp_lock);
initMutex = 1; initMutex = 1;
} }
#endif
if (wc_LockMutex(&ecc_fp_lock) != 0) { if (wc_LockMutex(&ecc_fp_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
@@ -13379,12 +13389,14 @@ void wc_ecc_fp_init(void)
{ {
#ifndef WOLFSSL_SP_MATH #ifndef WOLFSSL_SP_MATH
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initMutex == 0) { if (initMutex == 0) {
wc_InitMutex(&ecc_fp_lock); wc_InitMutex(&ecc_fp_lock);
initMutex = 1; initMutex = 1;
} }
#endif #endif
#endif #endif
#endif
} }
@@ -13394,10 +13406,12 @@ void wc_ecc_fp_free(void)
{ {
#if !defined(WOLFSSL_SP_MATH) #if !defined(WOLFSSL_SP_MATH)
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */ if (initMutex == 0) { /* extra sanity check if wolfCrypt_Init not called */
wc_InitMutex(&ecc_fp_lock); wc_InitMutex(&ecc_fp_lock);
initMutex = 1; initMutex = 1;
} }
#endif
if (wc_LockMutex(&ecc_fp_lock) == 0) { if (wc_LockMutex(&ecc_fp_lock) == 0) {
#endif /* HAVE_THREAD_LS */ #endif /* HAVE_THREAD_LS */
@@ -13406,8 +13420,10 @@ void wc_ecc_fp_free(void)
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
wc_UnLockMutex(&ecc_fp_lock); wc_UnLockMutex(&ecc_fp_lock);
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_FreeMutex(&ecc_fp_lock); wc_FreeMutex(&ecc_fp_lock);
initMutex = 0; initMutex = 0;
#endif
} }
#endif /* HAVE_THREAD_LS */ #endif /* HAVE_THREAD_LS */
#endif #endif

View File

@@ -818,7 +818,7 @@ static struct wc_error_queue* wc_current_node;
static void* wc_error_heap; static void* wc_error_heap;
/* mutex for list operation protection */ /* mutex for list operation protection */
static wolfSSL_Mutex wc_error_mutex; static wolfSSL_Mutex wc_error_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(wc_error_mutex);
#define ERRQ_MUTEX_INIT() wc_InitMutex(&wc_error_mutex) #define ERRQ_MUTEX_INIT() wc_InitMutex(&wc_error_mutex)
#define ERRQ_MUTEX_FREE() wc_FreeMutex(&wc_error_mutex) #define ERRQ_MUTEX_FREE() wc_FreeMutex(&wc_error_mutex)
#define ERRQ_LOCK() wc_LockMutex(&wc_error_mutex) #define ERRQ_LOCK() wc_LockMutex(&wc_error_mutex)
@@ -827,10 +827,12 @@ static wolfSSL_Mutex wc_error_mutex;
/* Internal function that is called by wolfCrypt_Init() */ /* Internal function that is called by wolfCrypt_Init() */
int wc_LoggingInit(void) int wc_LoggingInit(void)
{ {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (ERRQ_MUTEX_INIT() != 0) { if (ERRQ_MUTEX_INIT() != 0) {
WOLFSSL_MSG("Bad Init Mutex"); WOLFSSL_MSG("Bad Init Mutex");
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
#endif
wc_errors_count = 0; wc_errors_count = 0;
wc_errors = NULL; wc_errors = NULL;
wc_current_node = NULL; wc_current_node = NULL;
@@ -845,10 +847,12 @@ int wc_LoggingCleanup(void)
/* clear logging entries */ /* clear logging entries */
wc_ClearErrorNodes(); wc_ClearErrorNodes();
/* free mutex */ /* free mutex */
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (ERRQ_MUTEX_FREE() != 0) { if (ERRQ_MUTEX_FREE() != 0) {
WOLFSSL_MSG("Bad Mutex free"); WOLFSSL_MSG("Bad Mutex free");
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
#endif
return 0; return 0;
} }

View File

@@ -120,7 +120,7 @@ int wolfSSL_GetAllocators(wolfSSL_Malloc_cb* mf,
} }
#ifdef WOLFSSL_MEM_FAIL_COUNT #ifdef WOLFSSL_MEM_FAIL_COUNT
static wolfSSL_Mutex memFailMutex; static wolfSSL_Mutex memFailMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(memFailMutex);
int mem_fail_allocs = 0; int mem_fail_allocs = 0;
int mem_fail_frees = 0; int mem_fail_frees = 0;
int mem_fail_cnt = 0; int mem_fail_cnt = 0;
@@ -128,7 +128,9 @@ int mem_fail_cnt = 0;
void wc_MemFailCount_Init() void wc_MemFailCount_Init()
{ {
char* cnt; char* cnt;
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_InitMutex(&memFailMutex); wc_InitMutex(&memFailMutex);
#endif
cnt = getenv("MEM_FAIL_CNT"); cnt = getenv("MEM_FAIL_CNT");
if (cnt != NULL) { if (cnt != NULL) {
fprintf(stderr, "MemFailCount At: %d\n", mem_fail_cnt); fprintf(stderr, "MemFailCount At: %d\n", mem_fail_cnt);
@@ -158,7 +160,9 @@ static void wc_MemFailCount_FreeMem(void)
} }
void wc_MemFailCount_Free() void wc_MemFailCount_Free()
{ {
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_FreeMutex(&memFailMutex); wc_FreeMutex(&memFailMutex);
#endif
fprintf(stderr, "MemFailCount Total: %d\n", mem_fail_allocs); fprintf(stderr, "MemFailCount Total: %d\n", mem_fail_allocs);
fprintf(stderr, "MemFailCount Frees: %d\n", mem_fail_frees); fprintf(stderr, "MemFailCount Frees: %d\n", mem_fail_frees);
} }
@@ -196,7 +200,7 @@ static MemZero memZero[WOLFSSL_MEM_CHECK_ZERO_CACHE_LEN];
*/ */
static int nextIdx = -1; static int nextIdx = -1;
/* Mutex to protect modifying list of addresses to check. */ /* Mutex to protect modifying list of addresses to check. */
static wolfSSL_Mutex zeroMutex; static wolfSSL_Mutex zeroMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(zeroMutex);
/* Initialize the table of addresses and the mutex. /* Initialize the table of addresses and the mutex.
*/ */
@@ -205,7 +209,9 @@ void wc_MemZero_Init()
/* Clear the table to more easily see what is valid. */ /* Clear the table to more easily see what is valid. */
XMEMSET(memZero, 0, sizeof(memZero)); XMEMSET(memZero, 0, sizeof(memZero));
/* Initialize mutex. */ /* Initialize mutex. */
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_InitMutex(&zeroMutex); wc_InitMutex(&zeroMutex);
#endif
/* Next index is first entry. */ /* Next index is first entry. */
nextIdx = 0; nextIdx = 0;
} }
@@ -215,7 +221,9 @@ void wc_MemZero_Init()
void wc_MemZero_Free() void wc_MemZero_Free()
{ {
/* Free mutex. */ /* Free mutex. */
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_FreeMutex(&zeroMutex); wc_FreeMutex(&zeroMutex);
#endif
/* Make sure we checked all addresses. */ /* Make sure we checked all addresses. */
if (nextIdx > 0) { if (nextIdx > 0) {
int i; int i;

View File

@@ -92,9 +92,12 @@ This library contains implementation for the random number generator.
#elif defined(HAVE_WNR) #elif defined(HAVE_WNR)
#include <wnr.h> #include <wnr.h>
#include <wolfssl/wolfcrypt/logging.h> #include <wolfssl/wolfcrypt/logging.h>
wolfSSL_Mutex wnr_mutex; /* global netRandom mutex */ wolfSSL_Mutex wnr_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(wnr_mutex); /* global netRandom mutex */
int wnr_timeout = 0; /* entropy timeout, milliseconds */ int wnr_timeout = 0; /* entropy timeout, milliseconds */
int wnr_mutex_init = 0; /* flag for mutex init */ #ifndef WOLFSSL_MUTEX_INITIALIZER
int wnr_mutex_inited = 0; /* flag for mutex init */
#endif
int wnr_inited = 0; /* flag for whether wc_InitNetRandom() has been called */
wnr_context* wnr_ctx; /* global netRandom context */ wnr_context* wnr_ctx; /* global netRandom context */
#elif defined(FREESCALE_KSDK_2_0_TRNG) #elif defined(FREESCALE_KSDK_2_0_TRNG)
#include "fsl_trng.h" #include "fsl_trng.h"
@@ -1376,7 +1379,7 @@ static int Entropy_Condition(byte* output, word32 len, byte* noise,
/* Mutex to prevent multiple callers requesting entropy operations at the /* Mutex to prevent multiple callers requesting entropy operations at the
* same time. * same time.
*/ */
static wolfSSL_Mutex entropy_mutex; static wolfSSL_Mutex entropy_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(entropy_mutex);
/* Get entropy of specified strength. /* Get entropy of specified strength.
* *
@@ -1503,7 +1506,7 @@ int Entropy_Init()
/* Check whether initialization has succeeded before. */ /* Check whether initialization has succeeded before. */
if (!entropy_memuse_initialized) { if (!entropy_memuse_initialized) {
#ifndef SINGLE_THREADED #if !defined(SINGLE_THREADED) && !defined(WOLFSSL_MUTEX_INITIALIZER)
ret = wc_InitMutex(&entropy_mutex); ret = wc_InitMutex(&entropy_mutex);
#endif #endif
if (ret == 0) { if (ret == 0) {
@@ -1540,7 +1543,7 @@ void Entropy_Final()
if (entropy_memuse_initialized) { if (entropy_memuse_initialized) {
/* Dispose of the SHA3-356 hash object. */ /* Dispose of the SHA3-356 hash object. */
wc_Sha3_256_Free(&entropyHash); wc_Sha3_256_Free(&entropyHash);
#ifndef SINGLE_THREADED #if !defined(SINGLE_THREADED) && !defined(WOLFSSL_MUTEX_INITIALIZER)
wc_FreeMutex(&entropy_mutex); wc_FreeMutex(&entropy_mutex);
#endif #endif
/* Clear health test data. */ /* Clear health test data. */
@@ -2277,10 +2280,13 @@ static int wc_RNG_HealthTestLocal(int reseed, void* heap, int devId)
*/ */
int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout) int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
{ {
int ret;
if (configFile == NULL || timeout < 0) if (configFile == NULL || timeout < 0)
return BAD_FUNC_ARG; return BAD_FUNC_ARG;
if (wnr_mutex_init > 0) { #ifndef WOLFSSL_MUTEX_INITIALIZER
if (wnr_mutex_inited > 0) {
WOLFSSL_MSG("netRandom context already created, skipping"); WOLFSSL_MSG("netRandom context already created, skipping");
return 0; return 0;
} }
@@ -2289,7 +2295,14 @@ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
WOLFSSL_MSG("Bad Init Mutex wnr_mutex"); WOLFSSL_MSG("Bad Init Mutex wnr_mutex");
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
wnr_mutex_init = 1;
wnr_mutex_inited = 1;
#endif
if (wnr_inited > 0) {
WOLFSSL_MSG("netRandom context already created, skipping");
return 0;
}
if (wc_LockMutex(&wnr_mutex) != 0) { if (wc_LockMutex(&wnr_mutex) != 0) {
WOLFSSL_MSG("Bad Lock Mutex wnr_mutex"); WOLFSSL_MSG("Bad Lock Mutex wnr_mutex");
@@ -2302,7 +2315,8 @@ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
/* create global wnr_context struct */ /* create global wnr_context struct */
if (wnr_create(&wnr_ctx) != WNR_ERROR_NONE) { if (wnr_create(&wnr_ctx) != WNR_ERROR_NONE) {
WOLFSSL_MSG("Error creating global netRandom context"); WOLFSSL_MSG("Error creating global netRandom context");
return RNG_FAILURE_E; ret = RNG_FAILURE_E;
goto out;
} }
/* load config file */ /* load config file */
@@ -2310,7 +2324,8 @@ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
WOLFSSL_MSG("Error loading config file into netRandom context"); WOLFSSL_MSG("Error loading config file into netRandom context");
wnr_destroy(wnr_ctx); wnr_destroy(wnr_ctx);
wnr_ctx = NULL; wnr_ctx = NULL;
return RNG_FAILURE_E; ret = RNG_FAILURE_E;
goto out;
} }
/* create/init polling mechanism */ /* create/init polling mechanism */
@@ -2318,7 +2333,8 @@ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
WOLFSSL_MSG("Error initializing netRandom polling mechanism"); WOLFSSL_MSG("Error initializing netRandom polling mechanism");
wnr_destroy(wnr_ctx); wnr_destroy(wnr_ctx);
wnr_ctx = NULL; wnr_ctx = NULL;
return RNG_FAILURE_E; ret = RNG_FAILURE_E;
goto out;
} }
/* validate config, set HMAC callback (optional) */ /* validate config, set HMAC callback (optional) */
@@ -2327,12 +2343,17 @@ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
wnr_destroy(wnr_ctx); wnr_destroy(wnr_ctx);
wnr_ctx = NULL; wnr_ctx = NULL;
wnr_poll_destroy(); wnr_poll_destroy();
return RNG_FAILURE_E; ret = RNG_FAILURE_E;
goto out;
} }
wnr_inited = 1;
out:
wc_UnLockMutex(&wnr_mutex); wc_UnLockMutex(&wnr_mutex);
return 0; return ret;
} }
/* /*
@@ -2341,7 +2362,7 @@ int wc_InitNetRandom(const char* configFile, wnr_hmac_key hmac_cb, int timeout)
*/ */
int wc_FreeNetRandom(void) int wc_FreeNetRandom(void)
{ {
if (wnr_mutex_init > 0) { if (wnr_inited > 0) {
if (wc_LockMutex(&wnr_mutex) != 0) { if (wc_LockMutex(&wnr_mutex) != 0) {
WOLFSSL_MSG("Bad Lock Mutex wnr_mutex"); WOLFSSL_MSG("Bad Lock Mutex wnr_mutex");
@@ -2356,8 +2377,12 @@ int wc_FreeNetRandom(void)
wc_UnLockMutex(&wnr_mutex); wc_UnLockMutex(&wnr_mutex);
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_FreeMutex(&wnr_mutex); wc_FreeMutex(&wnr_mutex);
wnr_mutex_init = 0; wnr_mutex_inited = 0;
#endif
wnr_inited = 0;
} }
return 0; return 0;

View File

@@ -74076,8 +74076,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -74175,10 +74177,12 @@ static int sp_256_ecc_mulmod_8(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -74496,8 +74500,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -74595,10 +74601,12 @@ static int sp_256_ecc_mulmod_8(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -91837,8 +91845,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -91936,10 +91946,12 @@ static int sp_384_ecc_mulmod_12(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -92273,8 +92285,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -92372,10 +92386,12 @@ static int sp_384_ecc_mulmod_12(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -119032,8 +119048,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -119131,10 +119149,12 @@ static int sp_521_ecc_mulmod_17(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -119488,8 +119508,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -119587,10 +119609,12 @@ static int sp_521_ecc_mulmod_17(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -148716,8 +148740,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -148815,10 +148841,12 @@ static int sp_1024_ecc_mulmod_32(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -149071,8 +149099,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -149170,10 +149200,12 @@ static int sp_1024_ecc_mulmod_32(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -24939,8 +24939,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -25038,10 +25040,12 @@ static int sp_256_ecc_mulmod_4(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -25368,8 +25372,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -25467,10 +25473,12 @@ static int sp_256_ecc_mulmod_4(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -45888,8 +45896,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -45987,10 +45997,12 @@ static int sp_384_ecc_mulmod_6(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -46317,8 +46329,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -46416,10 +46430,12 @@ static int sp_384_ecc_mulmod_6(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -74312,8 +74328,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -74411,10 +74429,12 @@ static int sp_521_ecc_mulmod_9(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -74759,8 +74779,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -74858,10 +74880,12 @@ static int sp_521_ecc_mulmod_9(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -118234,8 +118258,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -118333,10 +118359,12 @@ static int sp_1024_ecc_mulmod_16(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -101578,8 +101578,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -101677,10 +101679,12 @@ static int sp_256_ecc_mulmod_8(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -101998,8 +102002,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -102097,10 +102103,12 @@ static int sp_256_ecc_mulmod_8(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -112446,8 +112454,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -112545,10 +112555,12 @@ static int sp_384_ecc_mulmod_12(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -112882,8 +112894,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -112981,10 +112995,12 @@ static int sp_384_ecc_mulmod_12(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -126089,8 +126105,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -126188,10 +126206,12 @@ static int sp_521_ecc_mulmod_17(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -126545,8 +126565,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -126644,10 +126666,12 @@ static int sp_521_ecc_mulmod_17(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -210707,8 +210731,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -210806,10 +210832,12 @@ static int sp_1024_ecc_mulmod_32(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -211062,8 +211090,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -211161,10 +211191,12 @@ static int sp_1024_ecc_mulmod_32(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -23120,8 +23120,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -23219,10 +23221,12 @@ static int sp_256_ecc_mulmod_9(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -30674,8 +30678,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -30773,10 +30779,12 @@ static int sp_384_ecc_mulmod_15(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -38277,8 +38285,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -38376,10 +38386,12 @@ static int sp_521_ecc_mulmod_21(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -46862,8 +46874,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -46961,10 +46975,12 @@ static int sp_1024_ecc_mulmod_42(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -24027,8 +24027,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -24126,10 +24128,12 @@ static int sp_256_ecc_mulmod_5(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -31008,8 +31012,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -31107,10 +31113,12 @@ static int sp_384_ecc_mulmod_7(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -38449,8 +38457,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -38548,10 +38558,12 @@ static int sp_521_ecc_mulmod_9(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -46216,8 +46228,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -46315,10 +46329,12 @@ static int sp_1024_ecc_mulmod_18(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -36403,8 +36403,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -36502,10 +36504,12 @@ static int sp_256_ecc_mulmod_8(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -36823,8 +36827,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -36922,10 +36928,12 @@ static int sp_256_ecc_mulmod_8(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -46272,8 +46280,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -46371,10 +46381,12 @@ static int sp_384_ecc_mulmod_12(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -46708,8 +46720,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -46807,10 +46821,12 @@ static int sp_384_ecc_mulmod_12(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -58262,8 +58278,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -58361,10 +58379,12 @@ static int sp_521_ecc_mulmod_17(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -58718,8 +58738,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -58817,10 +58839,12 @@ static int sp_521_ecc_mulmod_17(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -72587,8 +72611,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -72686,10 +72712,12 @@ static int sp_1024_ecc_mulmod_32(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -72942,8 +72970,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -73041,10 +73071,12 @@ static int sp_1024_ecc_mulmod_32(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -2620,8 +2620,10 @@ static THREAD_LS_T int sp_cache_last = -1;
static THREAD_LS_T int sp_cache_inited = 0; static THREAD_LS_T int sp_cache_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
static wolfSSL_Mutex sp_cache_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_lock);
#ifdef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex = 0; static volatile int initCacheMutex = 0;
static wolfSSL_Mutex sp_cache_lock; #endif
#endif #endif
static void sp_ecc_get_cache(const sp_point* g, sp_cache_t** cache) static void sp_ecc_get_cache(const sp_point* g, sp_cache_t** cache)
@@ -2701,10 +2703,12 @@ static int sp_256_ecc_mulmod_10(sp_point* r, const sp_point* g, const sp_digit*
int err = MP_OKAY; int err = MP_OKAY;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex == 0) { if (initCacheMutex == 0) {
wc_InitMutex(&sp_cache_lock); wc_InitMutex(&sp_cache_lock);
initCacheMutex = 1; initCacheMutex = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_lock) != 0) if (wc_LockMutex(&sp_cache_lock) != 0)
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
#endif /* HAVE_THREAD_LS */ #endif /* HAVE_THREAD_LS */

View File

@@ -10979,8 +10979,10 @@ static THREAD_LS_T int sp_cache_256_last = -1;
static THREAD_LS_T int sp_cache_256_inited = 0; static THREAD_LS_T int sp_cache_256_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_256 = 0; static volatile int initCacheMutex_256 = 0;
static wolfSSL_Mutex sp_cache_256_lock; #endif
static wolfSSL_Mutex sp_cache_256_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_256_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -11078,10 +11080,12 @@ static int sp_256_ecc_mulmod_4(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -11459,10 +11463,12 @@ static int sp_256_ecc_mulmod_avx2_4(sp_point_256* r, const sp_point_256* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_256 == 0) { if (initCacheMutex_256 == 0) {
wc_InitMutex(&sp_cache_256_lock); wc_InitMutex(&sp_cache_256_lock);
initCacheMutex_256 = 1; initCacheMutex_256 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_256_lock) != 0) { if (wc_LockMutex(&sp_cache_256_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -30167,8 +30173,10 @@ static THREAD_LS_T int sp_cache_384_last = -1;
static THREAD_LS_T int sp_cache_384_inited = 0; static THREAD_LS_T int sp_cache_384_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_384 = 0; static volatile int initCacheMutex_384 = 0;
static wolfSSL_Mutex sp_cache_384_lock; #endif
static wolfSSL_Mutex sp_cache_384_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_384_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -30266,10 +30274,12 @@ static int sp_384_ecc_mulmod_6(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -30650,10 +30660,12 @@ static int sp_384_ecc_mulmod_avx2_6(sp_point_384* r, const sp_point_384* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_384 == 0) { if (initCacheMutex_384 == 0) {
wc_InitMutex(&sp_cache_384_lock); wc_InitMutex(&sp_cache_384_lock);
initCacheMutex_384 = 1; initCacheMutex_384 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_384_lock) != 0) { if (wc_LockMutex(&sp_cache_384_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -55045,8 +55057,10 @@ static THREAD_LS_T int sp_cache_521_last = -1;
static THREAD_LS_T int sp_cache_521_inited = 0; static THREAD_LS_T int sp_cache_521_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_521 = 0; static volatile int initCacheMutex_521 = 0;
static wolfSSL_Mutex sp_cache_521_lock; #endif
static wolfSSL_Mutex sp_cache_521_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_521_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -55144,10 +55158,12 @@ static int sp_521_ecc_mulmod_9(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -55528,10 +55544,12 @@ static int sp_521_ecc_mulmod_avx2_9(sp_point_521* r, const sp_point_521* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_521 == 0) { if (initCacheMutex_521 == 0) {
wc_InitMutex(&sp_cache_521_lock); wc_InitMutex(&sp_cache_521_lock);
initCacheMutex_521 = 1; initCacheMutex_521 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_521_lock) != 0) { if (wc_LockMutex(&sp_cache_521_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -96245,8 +96263,10 @@ static THREAD_LS_T int sp_cache_1024_last = -1;
static THREAD_LS_T int sp_cache_1024_inited = 0; static THREAD_LS_T int sp_cache_1024_inited = 0;
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
#ifndef WOLFSSL_MUTEX_INITIALIZER
static volatile int initCacheMutex_1024 = 0; static volatile int initCacheMutex_1024 = 0;
static wolfSSL_Mutex sp_cache_1024_lock; #endif
static wolfSSL_Mutex sp_cache_1024_lock WOLFSSL_MUTEX_INITIALIZER_CLAUSE(sp_cache_1024_lock);
#endif #endif
/* Get the cache entry for the point. /* Get the cache entry for the point.
@@ -96344,10 +96364,12 @@ static int sp_1024_ecc_mulmod_16(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }
@@ -96711,10 +96733,12 @@ static int sp_1024_ecc_mulmod_avx2_16(sp_point_1024* r, const sp_point_1024* g,
#endif #endif
#ifndef HAVE_THREAD_LS #ifndef HAVE_THREAD_LS
if (err == MP_OKAY) { if (err == MP_OKAY) {
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (initCacheMutex_1024 == 0) { if (initCacheMutex_1024 == 0) {
wc_InitMutex(&sp_cache_1024_lock); wc_InitMutex(&sp_cache_1024_lock);
initCacheMutex_1024 = 1; initCacheMutex_1024 = 1;
} }
#endif
if (wc_LockMutex(&sp_cache_1024_lock) != 0) { if (wc_LockMutex(&sp_cache_1024_lock) != 0) {
err = BAD_MUTEX_E; err = BAD_MUTEX_E;
} }

View File

@@ -38,7 +38,7 @@
#include "rpcmem.h" #include "rpcmem.h"
static wolfSSL_DSP_Handle_cb handle_function = NULL; static wolfSSL_DSP_Handle_cb handle_function = NULL;
static remote_handle64 defaultHandle; static remote_handle64 defaultHandle;
static wolfSSL_Mutex handle_mutex; /* mutex for access to single default handle */ static wolfSSL_Mutex handle_mutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(handle_mutex); /* mutex for access to single default handle */
#define WOLFSSL_HANDLE_DONE 1 #define WOLFSSL_HANDLE_DONE 1
#define WOLFSSL_HANDLE_GET 0 #define WOLFSSL_HANDLE_GET 0
@@ -95,11 +95,13 @@ int wolfSSL_InitHandle()
return -1; return -1;
} }
wolfSSL_SetHandleCb(default_handle_cb); wolfSSL_SetHandleCb(default_handle_cb);
#ifndef WOLFSSL_MUTEX_INITIALIZER
ret = wc_InitMutex(&handle_mutex); ret = wc_InitMutex(&handle_mutex);
if (ret != 0) { if (ret != 0) {
WOLFSSL_MSG("Unable to init handle mutex"); WOLFSSL_MSG("Unable to init handle mutex");
return -1; return -1;
} }
#endif
return 0; return 0;
} }
@@ -108,7 +110,9 @@ int wolfSSL_InitHandle()
void wolfSSL_CleanupHandle() void wolfSSL_CleanupHandle()
{ {
wolfSSL_close(defaultHandle); wolfSSL_close(defaultHandle);
#ifndef WOLFSSL_MUTEX_INITIALIZER
wc_FreeMutex(&handle_mutex); wc_FreeMutex(&handle_mutex);
#endif
} }
#if defined(WOLFSSL_HAVE_SP_ECC) #if defined(WOLFSSL_HAVE_SP_ECC)

View File

@@ -1283,18 +1283,22 @@ void wolfSSL_RefDec(wolfSSL_Ref* ref, int* isZero, int* err)
#if WOLFSSL_CRYPT_HW_MUTEX #if WOLFSSL_CRYPT_HW_MUTEX
/* Mutex for protection of cryptography hardware */ /* Mutex for protection of cryptography hardware */
static wolfSSL_Mutex wcCryptHwMutex; static wolfSSL_Mutex wcCryptHwMutex WOLFSSL_MUTEX_INITIALIZER_CLAUSE(wcCryptHwMutex);
#ifndef WOLFSSL_MUTEX_INITIALIZER
static int wcCryptHwMutexInit = 0; static int wcCryptHwMutexInit = 0;
#endif
int wolfSSL_CryptHwMutexInit(void) int wolfSSL_CryptHwMutexInit(void)
{ {
int ret = 0; int ret = 0;
#ifndef WOLFSSL_MUTEX_INITIALIZER
if (wcCryptHwMutexInit == 0) { if (wcCryptHwMutexInit == 0) {
ret = wc_InitMutex(&wcCryptHwMutex); ret = wc_InitMutex(&wcCryptHwMutex);
if (ret == 0) { if (ret == 0) {
wcCryptHwMutexInit = 1; wcCryptHwMutexInit = 1;
} }
} }
#endif
return ret; return ret;
} }
int wolfSSL_CryptHwMutexLock(void) int wolfSSL_CryptHwMutexLock(void)

View File

@@ -244,7 +244,7 @@
typedef pthread_rwlock_t wolfSSL_RwLock; typedef pthread_rwlock_t wolfSSL_RwLock;
#endif #endif
typedef pthread_mutex_t wolfSSL_Mutex; typedef pthread_mutex_t wolfSSL_Mutex;
#define WOLFSSL_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER #define WOLFSSL_MUTEX_INITIALIZER(lockname) PTHREAD_MUTEX_INITIALIZER
#elif defined(THREADX) #elif defined(THREADX)
typedef TX_MUTEX wolfSSL_Mutex; typedef TX_MUTEX wolfSSL_Mutex;
#elif defined(WOLFSSL_DEOS) #elif defined(WOLFSSL_DEOS)
@@ -306,6 +306,13 @@
#endif /* USE_WINDOWS_API */ #endif /* USE_WINDOWS_API */
#endif /* SINGLE_THREADED */ #endif /* SINGLE_THREADED */
#ifdef WOLFSSL_MUTEX_INITIALIZER
#define WOLFSSL_MUTEX_INITIALIZER_CLAUSE(lockname) = WOLFSSL_MUTEX_INITIALIZER(lockname)
#else
#define WOLFSSL_MUTEX_INITIALIZER_CLAUSE(lockname) /* null expansion */
#endif
#if !defined(WOLFSSL_USE_RWLOCK) || defined(SINGLE_THREADED) #if !defined(WOLFSSL_USE_RWLOCK) || defined(SINGLE_THREADED)
typedef wolfSSL_Mutex wolfSSL_RwLock; typedef wolfSSL_Mutex wolfSSL_RwLock;
#endif #endif