Updates for TKernel port (WOLFSSL_uTKERNEL2). Added support for InterNiche prconnect_pro using WOLFSSL_PRCONNECT_PRO. Cleanup the min/max functions. Add NO_STDIO_FGETS_REMAP to not include the fgets remap for WOLFSSL_uTKERNEL2. Fix TFM build warning. Added HAVE_POCO_LIB. Added wolfCrypt test temp cert path for WOLFSSL_uTKERNEL2 = /uda/. Added WOLFSSL_CURRTIME_REMAP for benchmark to allow different function name to be used for system which have a conflicting name. Add ability to use normal malloc/free with WOLFSSL_uTKERNEL2 using NO_TKERNEL_MEM_POOL. Added new XMALLOC_OVERRIDE to allow custom XMALLOC/XFREE/XREALLOC macros. Move CUSTOM_RAND_GENERATE up in RNG choices. Rename tls.c STK macros due to conflict.
This commit is contained in:
parent
14efd9735d
commit
75abeaecfc
@ -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;
|
||||
|
26
src/ssl.c
26
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
|
||||
|
32
src/tls.c
32
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:
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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 <wolfssl/wolfcrypt/port/atmel/atmel.h>
|
||||
|
||||
|
||||
int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
|
||||
{
|
||||
int ret = 0;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -90,6 +90,14 @@
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <io.h>
|
||||
#elif defined(WOLFSSL_PRCONNECT_PRO)
|
||||
#include <prconnect_pro/prconnect_pro.h>
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/ioctl.h>
|
||||
#elif !defined(WOLFSSL_NO_SOCK)
|
||||
#include <sys/types.h>
|
||||
#include <errno.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
|
||||
|
@ -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 */
|
||||
|
||||
|
||||
|
@ -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 <stdio.h>
|
||||
#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 <stdio.h>
|
||||
#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
|
||||
|
||||
|
@ -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 <stdlib.h>
|
||||
@ -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 <wolfssl/wolfcrypt/memory.h>
|
||||
#ifdef WOLFSSL_STATIC_MEMORY
|
||||
|
Loading…
x
Reference in New Issue
Block a user