diff --git a/src/keys.c b/src/keys.c index 7538b18e6..c16bd3799 100644 --- a/src/keys.c +++ b/src/keys.c @@ -2681,6 +2681,7 @@ static int SetAuthKeys(OneTimeAuth* authentication, Keys* keys, if (authentication) authentication->setup = 1; #endif + (void)authentication; (void)heap; (void)keys; (void)specs; diff --git a/src/ssl.c b/src/ssl.c index a1c12f7d5..98fbe3a38 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -94,17 +94,6 @@ #endif -#if defined(WOLFSSL_DTLS) && !defined(WOLFSSL_HAVE_MAX) -#define WOLFSSL_HAVE_MAX - - static INLINE word32 max(word32 a, word32 b) - { - return a > b ? a : b; - } - -#endif /* WOLFSSL_DTLS && !WOLFSSL_HAVE_MAX */ - - #ifndef WOLFSSL_LEANPSK char* mystrnstr(const char* s1, const char* s2, unsigned int n) { @@ -12577,7 +12566,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md) cert = (DecodedCert*)XMALLOC(sizeof(DecodedCert), NULL, DYNAMIC_TYPE_TMP_BUFFER); if (cert == NULL) - return NULL; + return MEMORY_E; #endif /* Create a DecodedCert object and copy fields into WOLFSSL_X509 object. @@ -16540,6 +16529,8 @@ int wolfSSL_BN_mod_exp(WOLFSSL_BIGNUM *r, const WOLFSSL_BIGNUM *a, } WOLFSSL_LEAVE("wolfSSL_BN_mod_exp", ret); + (void)ret; + return SSL_FAILURE; } @@ -21199,6 +21190,7 @@ WOLFSSL_X509* wolfSSL_get_chain_X509(WOLFSSL_X509_CHAIN* chain, int idx) #endif } } + (void)ret; return x509; } @@ -21568,16 +21560,16 @@ void* wolfSSL_GetRsaDecCtx(WOLFSSL* ssl) } #endif /* ifndef NO_CERTS */ -#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || defined(OPENSSL_EXTRA) #ifndef NO_CERTS void wolfSSL_X509_NAME_free(WOLFSSL_X509_NAME *name){ FreeX509Name(name, NULL); WOLFSSL_ENTER("wolfSSL_X509_NAME_free"); } #endif /* NO_CERTS */ -#endif -#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) +#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) || \ + defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || \ + defined(HAVE_POCO_LIB) unsigned char *wolfSSL_SHA1(const unsigned char *d, size_t n, unsigned char *md) { @@ -21772,8 +21764,8 @@ void* wolfSSL_GetRsaDecCtx(WOLFSSL* ssl) return NULL; } -#endif /* HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || HAVE_STUNNEL */ -#endif +#endif /* HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || HAVE_STUNNEL || WOLFSSL_NGINX || HAVE_POCO_LIB */ +#endif /* OPENSSL_EXTRA */ #ifdef OPENSSL_EXTRA diff --git a/src/tls.c b/src/tls.c index 8c8437ae8..cc2fa3bf8 100755 --- a/src/tls.c +++ b/src/tls.c @@ -3564,19 +3564,19 @@ int TLSX_UseSessionTicket(TLSX** extensions, SessionTicket* ticket, void* heap) return SSL_SUCCESS; } -#define STK_VALIDATE_REQUEST TLSX_SessionTicket_ValidateRequest -#define STK_GET_SIZE TLSX_SessionTicket_GetSize -#define STK_WRITE TLSX_SessionTicket_Write -#define STK_PARSE TLSX_SessionTicket_Parse -#define STK_FREE(stk, heap) TLSX_SessionTicket_Free((SessionTicket*)stk,(heap)) +#define WOLF_STK_VALIDATE_REQUEST TLSX_SessionTicket_ValidateRequest +#define WOLF_STK_GET_SIZE TLSX_SessionTicket_GetSize +#define WOLF_STK_WRITE TLSX_SessionTicket_Write +#define WOLF_STK_PARSE TLSX_SessionTicket_Parse +#define WOLF_STK_FREE(stk, heap) TLSX_SessionTicket_Free((SessionTicket*)stk,(heap)) #else -#define STK_FREE(a, b) -#define STK_VALIDATE_REQUEST(a) -#define STK_GET_SIZE(a, b) 0 -#define STK_WRITE(a, b, c) 0 -#define STK_PARSE(a, b, c, d) 0 +#define WOLF_STK_FREE(a, b) +#define WOLF_STK_VALIDATE_REQUEST(a) +#define WOLF_STK_GET_SIZE(a, b) 0 +#define WOLF_STK_WRITE(a, b, c) 0 +#define WOLF_STK_PARSE(a, b, c, d) 0 #endif /* HAVE_SESSION_TICKET */ @@ -4229,7 +4229,7 @@ void TLSX_FreeAll(TLSX* list, void* heap) break; case TLSX_SESSION_TICKET: - STK_FREE(extension->data, heap); + WOLF_STK_FREE(extension->data, heap); break; case TLSX_QUANTUM_SAFE_HYBRID: @@ -4310,7 +4310,7 @@ static word16 TLSX_GetSize(TLSX* list, byte* semaphore, byte isRequest) break; case TLSX_SESSION_TICKET: - length += STK_GET_SIZE((SessionTicket*)extension->data, + length += WOLF_STK_GET_SIZE((SessionTicket*)extension->data, isRequest); break; @@ -4393,7 +4393,7 @@ static word16 TLSX_Write(TLSX* list, byte* output, byte* semaphore, break; case TLSX_SESSION_TICKET: - offset += STK_WRITE((SessionTicket*)extension->data, + offset += WOLF_STK_WRITE((SessionTicket*)extension->data, output + offset, isRequest); break; @@ -4797,7 +4797,7 @@ word16 TLSX_GetRequestSize(WOLFSSL* ssl) EC_VALIDATE_REQUEST(ssl, semaphore); QSH_VALIDATE_REQUEST(ssl, semaphore); - STK_VALIDATE_REQUEST(ssl); + WOLF_STK_VALIDATE_REQUEST(ssl); if (ssl->extensions) length += TLSX_GetSize(ssl->extensions, semaphore, 1); @@ -4832,7 +4832,7 @@ word16 TLSX_WriteRequest(WOLFSSL* ssl, byte* output) offset += OPAQUE16_LEN; /* extensions length */ EC_VALIDATE_REQUEST(ssl, semaphore); - STK_VALIDATE_REQUEST(ssl); + WOLF_STK_VALIDATE_REQUEST(ssl); QSH_VALIDATE_REQUEST(ssl, semaphore); if (ssl->extensions) @@ -5031,7 +5031,7 @@ int TLSX_Parse(WOLFSSL* ssl, byte* input, word16 length, byte isRequest, case TLSX_SESSION_TICKET: WOLFSSL_MSG("Session Ticket extension received"); - ret = STK_PARSE(ssl, input + offset, size, isRequest); + ret = WOLF_STK_PARSE(ssl, input + offset, size, isRequest); break; case TLSX_QUANTUM_SAFE_HYBRID: diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c index 2bbdfdc44..a4f1e6877 100644 --- a/wolfcrypt/benchmark/benchmark.c +++ b/wolfcrypt/benchmark/benchmark.c @@ -233,8 +233,11 @@ void bench_ntruKeyGen(void); void bench_rng(void); #endif /* WC_NO_RNG */ -double current_time(int); - +#ifdef WOLFSSL_CURRTIME_REMAP + #define current_time WOLFSSL_CURRTIME_REMAP +#else + double current_time(int); +#endif #if defined(DEBUG_WOLFSSL) && !defined(HAVE_VALGRIND) WOLFSSL_API int wolfSSL_Debugging_ON(); @@ -2592,8 +2595,9 @@ void bench_ed25519KeySign(void) return ( ns / CLOCK * 2.0); } -#elif defined(WOLFSSL_IAR_ARM_TIME) || defined (WOLFSSL_MDK_ARM) || defined(WOLFSSL_USER_CURRTIME) - /* declared above at line 189 */ +#elif defined(WOLFSSL_IAR_ARM_TIME) || defined (WOLFSSL_MDK_ARM) || \ + defined(WOLFSSL_USER_CURRTIME) || defined(WOLFSSL_CURRTIME_REMAP) + /* declared above at line 239 */ /* extern double current_time(int reset); */ #elif defined FREERTOS diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 3114ef915..e7363aae5 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -8258,7 +8258,7 @@ static int WriteCertReqBody(DerCert* der, byte* buffer) /* extensions */ if (der->extensionsSz) { XMEMCPY(buffer + idx, der->extensions, min(der->extensionsSz, - sizeof(der->extensions))); + (int)sizeof(der->extensions))); idx += der->extensionsSz; } diff --git a/wolfcrypt/src/misc.c b/wolfcrypt/src/misc.c index e1df3277c..363db46a8 100644 --- a/wolfcrypt/src/misc.c +++ b/wolfcrypt/src/misc.c @@ -216,21 +216,32 @@ STATIC INLINE int ConstantCompare(const byte* a, const byte* b, int length) return compareSum; } + #ifndef WOLFSSL_HAVE_MIN #define WOLFSSL_HAVE_MIN - #if defined(HAVE_FIPS) && !defined(min) + #if defined(HAVE_FIPS) && !defined(min) /* so ifdef check passes */ #define min min #endif STATIC INLINE word32 min(word32 a, word32 b) { return a > b ? b : a; } -#endif /* WOLFSSL_HAVE_MIN */ +#endif /* !WOLFSSL_HAVE_MIN */ + +#ifndef WOLFSSL_HAVE_MAX + #define WOLFSSL_HAVE_MAX + #if defined(HAVE_FIPS) && !defined(max) /* so ifdef check passes */ + #define max max + #endif + STATIC INLINE word32 max(word32 a, word32 b) + { + return a > b ? a : b; + } +#endif /* !WOLFSSL_HAVE_MAX */ #undef STATIC - #endif /* !WOLFSSL_MISC_INCLUDED && !NO_INLINE */ #endif /* WOLF_CRYPT_MISC_C */ diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 02bbe14e5..cf0201ed6 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -1170,6 +1170,38 @@ static int wc_GenerateRand_IntelRD(OS_Seed* os, byte* output, word32 sz) return CUSTOM_RAND_GENERATE_SEED_OS(os, output, sz); } + +#elif defined(CUSTOM_RAND_GENERATE) + + /* Implement your own random generation function + * word32 rand_gen(void); + * #define CUSTOM_RAND_GENERATE rand_gen */ + + int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) + { + word32 i = 0; + + (void)os; + + while (i < sz) + { + /* If not aligned or there is odd/remainder */ + if( (i + sizeof(CUSTOM_RAND_TYPE)) > sz || + ((wolfssl_word)&output[i] % sizeof(CUSTOM_RAND_TYPE)) != 0 + ) { + /* Single byte at a time */ + output[i++] = (byte)CUSTOM_RAND_GENERATE(); + } + else { + /* Use native 8, 16, 32 or 64 copy instruction */ + *((CUSTOM_RAND_TYPE*)&output[i]) = CUSTOM_RAND_GENERATE(); + i += sizeof(CUSTOM_RAND_TYPE); + } + } + + return 0; + } + #elif defined(WOLFSSL_SGX) int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) @@ -1392,7 +1424,7 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) return RAN_BLOCK_E; } } - + #elif defined(FREESCALE_KSDK_2_0_RNGA) int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) @@ -1626,40 +1658,9 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) return 0; } -#elif defined(CUSTOM_RAND_GENERATE) - - /* Implement your own random generation function - * word32 rand_gen(void); - * #define CUSTOM_RAND_GENERATE rand_gen */ - - int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) - { - word32 i = 0; - - (void)os; - - while (i < sz) - { - /* If not aligned or there is odd/remainder */ - if( (i + sizeof(CUSTOM_RAND_TYPE)) > sz || - ((wolfssl_word)&output[i] % sizeof(CUSTOM_RAND_TYPE)) != 0 - ) { - /* Single byte at a time */ - output[i++] = (byte)CUSTOM_RAND_GENERATE(); - } - else { - /* Use native 8, 16, 32 or 64 copy instruction */ - *((CUSTOM_RAND_TYPE*)&output[i]) = CUSTOM_RAND_GENERATE(); - i += sizeof(CUSTOM_RAND_TYPE); - } - } - - return 0; - } - #elif defined(WOLFSSL_ATMEL) #include - + int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) { int ret = 0; diff --git a/wolfcrypt/src/tfm.c b/wolfcrypt/src/tfm.c index b2def8ae7..cc74abd06 100644 --- a/wolfcrypt/src/tfm.c +++ b/wolfcrypt/src/tfm.c @@ -2741,10 +2741,8 @@ int mp_rand_prime(mp_int* N, int len, WC_RNG* rng, void* heap) switch(err) { case FP_VAL: return MP_VAL; - break; case FP_MEM: return MP_MEM; - break; default: break; } diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index 2ca371924..4d75a2253 100755 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -778,7 +778,7 @@ int wolfSSL_CryptHwMutexUnLock(void) { int wc_FreeMutex(wolfSSL_Mutex* m) { - tk_del_sem( m->id ); + tk_del_sem(m->id); return 0; } @@ -796,9 +796,12 @@ int wolfSSL_CryptHwMutexUnLock(void) { /**** uT-Kernel malloc/free ***/ static ID ID_wolfssl_MPOOL = 0; - static T_CMPL wolfssl_MPOOL = - {(void *)NULL, - TA_TFIFO , 0, "wolfSSL_MPOOL"}; + static T_CMPL wolfssl_MPOOL = { + NULL, /* Extended information */ + TA_TFIFO, /* Memory pool attribute */ + 0, /* Size of whole memory pool (byte) */ + "wolfSSL" /* Object name (max 8-char) */ + }; int uTKernel_init_mpool(unsigned int sz) { ER ercd; @@ -808,7 +811,7 @@ int wolfSSL_CryptHwMutexUnLock(void) { ID_wolfssl_MPOOL = ercd; return 0; } else { - return -1; + return (int)ercd; } } @@ -826,7 +829,7 @@ int wolfSSL_CryptHwMutexUnLock(void) { void *uTKernel_realloc(void *p, unsigned int sz) { ER ercd; void *newp; - if(p) { + if (p) { ercd = tk_get_mpl(ID_wolfssl_MPOOL, sz, (VP)&newp, TMO_FEVR); if (ercd == E_OK) { XMEMCPY(newp, p, sz); diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 90572d6ec..f5504866b 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -5277,6 +5277,9 @@ byte GetEntropy(ENTROPY_CMD cmd, byte* out) #elif defined(WOLFSSL_MKD_SHELL) #define CERT_PREFIX "" #define CERT_PATH_SEP "/" +#elif defined(WOLFSSL_uTKERNEL2) + #define CERT_PREFIX "/uda/" + #define CERT_PATH_SEP "/" #else #define CERT_PREFIX "./" #define CERT_PATH_SEP "/" @@ -6106,7 +6109,7 @@ int rsa_test(void) tmp = (byte*)XMALLOC(FOURK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); if (tmp == NULL) - return -40; + return -38; #ifdef USE_CERT_BUFFERS_1024 XMEMCPY(tmp, client_key_der_1024, sizeof_client_key_der_1024); diff --git a/wolfssl/io.h b/wolfssl/io.h index c036a8327..0d56055bf 100644 --- a/wolfssl/io.h +++ b/wolfssl/io.h @@ -90,6 +90,14 @@ #include #include #include + #elif defined(WOLFSSL_PRCONNECT_PRO) + #include + #include + #include + #include + #include + #include + #include #elif !defined(WOLFSSL_NO_SOCK) #include #include diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index 60b1ea647..b728a9580 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -471,9 +471,9 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX; /* Lighthttp compatibility */ -#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) \ - || defined(HAVE_STUNNEL) \ - || defined(WOLFSSL_NGINX) +#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) || \ + defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || \ + defined(HAVE_POCO_LIB) typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY; #define X509_NAME_free wolfSSL_X509_NAME_free @@ -501,11 +501,6 @@ typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY; #define SSL_dup_CA_list wolfSSL_dup_CA_list #define NID_commonName 0x03 /* matchs ASN_COMMON_NAME in asn.h */ -#endif - -#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) \ - || defined(HAVE_STUNNEL) \ - || defined(WOLFSSL_NGINX) #define OBJ_nid2ln wolfSSL_OBJ_nid2ln #define OBJ_txt2nid wolfSSL_OBJ_txt2nid @@ -513,7 +508,8 @@ typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY; #define PEM_read_bio_DSAparams wolfSSL_PEM_read_bio_DSAparams #define PEM_write_bio_X509 wolfSSL_PEM_write_bio_X509 -#endif /* HAVE_STUNNEL || HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || WOLFSSL_NGINX */ +#endif /* HAVE_STUNNEL || HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || WOLFSSL_NGINX || HAVE_POCO_LIB */ + #define SSL_CTX_set_tmp_dh wolfSSL_CTX_set_tmp_dh #define BIO_new_file wolfSSL_BIO_new_file diff --git a/wolfssl/wolfcrypt/misc.h b/wolfssl/wolfcrypt/misc.h index c86fe2a6f..ed64159c8 100644 --- a/wolfssl/wolfcrypt/misc.h +++ b/wolfssl/wolfcrypt/misc.h @@ -68,12 +68,20 @@ void ByteReverseWords64(word64*, const word64*, word32); #endif /* WORD64_AVAILABLE */ #ifndef WOLFSSL_HAVE_MIN - #if defined(HAVE_FIPS) && !defined(min) + #if defined(HAVE_FIPS) && !defined(min) /* so ifdef check passes */ #define min min #endif WOLFSSL_LOCAL word32 min(word32 a, word32 b); #endif +#ifndef WOLFSSL_HAVE_MAX + #if defined(HAVE_FIPS) && !defined(max) /* so ifdef check passes */ + #define max max + #endif + WOLFSSL_LOCAL word32 max(word32 a, word32 b); +#endif /* WOLFSSL_HAVE_MAX */ + + #endif /* NO_INLINE */ diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index c2febfcc9..9e16be339 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -460,36 +460,38 @@ extern void uITRON4_free(void *p) ; #endif #if defined(WOLFSSL_uTKERNEL2) -#define WOLFSSL_CLOSESOCKET -#define XMALLOC_USER -int uTKernel_init_mpool(unsigned int sz) ; /* initializing malloc pool */ -void *uTKernel_malloc(unsigned int sz) ; -void *uTKernel_realloc(void *p, unsigned int sz) ; -void uTKernel_free(void *p) ; -#define XMALLOC(s, h, type) uTKernel_malloc((s)) -#define XREALLOC(p, n, h, t) uTKernel_realloc((p), (n)) -#define XFREE(p, h, type) uTKernel_free((p)) + #ifndef NO_TKERNEL_MEM_POOL + #define XMALLOC_OVERRIDE + int uTKernel_init_mpool(unsigned int sz); /* initializing malloc pool */ + void* uTKernel_malloc(unsigned int sz); + void* uTKernel_realloc(void *p, unsigned int sz); + void uTKernel_free(void *p); + #define XMALLOC(s, h, type) uTKernel_malloc((s)) + #define XREALLOC(p, n, h, t) uTKernel_realloc((p), (n)) + #define XFREE(p, h, type) uTKernel_free((p)) + #endif -#include -#include "tm/tmonitor.h" -static char *fgets(char *buff, int sz, FILE *fp) -/*static char * gets(char *buff)*/ -{ - char * p = buff ; - *p = '\0' ; - while(1) { - *p = tm_getchar(-1) ; - tm_putchar(*p) ; - if(*p == '\r') { - tm_putchar('\n') ; - *p = '\0' ; - break ; + #ifndef NO_STDIO_FGETS_REMAP + #include + #include "tm/tmonitor.h" + + /* static char* gets(char *buff); */ + static char* fgets(char *buff, int sz, FILE *fp) { + char * p = buff; + *p = '\0'; + while (1) { + *p = tm_getchar(-1); + tm_putchar(*p); + if (*p == '\r') { + tm_putchar('\n'); + *p = '\0'; + break; + } + p++; } - p ++ ; + return buff; } - return buff ; -} - + #endif /* !NO_STDIO_FGETS_REMAP */ #endif @@ -1210,7 +1212,8 @@ static char *fgets(char *buff, int sz, FILE *fp) #if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \ - !defined(WOLFSSL_LEANPSK) && !defined(NO_WOLFSSL_MEMORY) + !defined(WOLFSSL_LEANPSK) && !defined(NO_WOLFSSL_MEMORY) && \ + !defined(XMALLOC_OVERRIDE) #define USE_WOLFSSL_MEMORY #endif diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 5e405dd21..e86578b87 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -184,6 +184,8 @@ extern void *XMALLOC(size_t n, void* heap, int type); extern void *XREALLOC(void *p, size_t n, void* heap, int type); extern void XFREE(void *p, void* heap, int type); + #elif defined(XMALLOC_OVERRIDE) + /* override the XMALLOC, XFREE and XREALLOC macros */ #elif defined(NO_WOLFSSL_MEMORY) /* just use plain C stdlib stuff if desired */ #include @@ -194,7 +196,7 @@ && !defined(WOLFSSL_SAFERTOS) && !defined(FREESCALE_MQX) \ && !defined(FREESCALE_KSDK_MQX) && !defined(FREESCALE_FREE_RTOS) \ && !defined(WOLFSSL_LEANPSK) && !defined(FREERTOS) && !defined(FREERTOS_TCP)\ - && !defined(WOLFSSL_uITRON4) && !defined(WOLFSSL_uTKERNEL2) + && !defined(WOLFSSL_uITRON4) /* default C runtime, can install different routines at runtime via cbs */ #include #ifdef WOLFSSL_STATIC_MEMORY