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:
David Garske
2017-03-28 19:10:19 -07:00
parent 14efd9735d
commit 75abeaecfc
15 changed files with 152 additions and 122 deletions

View File

@@ -2681,6 +2681,7 @@ static int SetAuthKeys(OneTimeAuth* authentication, Keys* keys,
if (authentication) if (authentication)
authentication->setup = 1; authentication->setup = 1;
#endif #endif
(void)authentication;
(void)heap; (void)heap;
(void)keys; (void)keys;
(void)specs; (void)specs;

View File

@@ -94,17 +94,6 @@
#endif #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 #ifndef WOLFSSL_LEANPSK
char* mystrnstr(const char* s1, const char* s2, unsigned int n) 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, cert = (DecodedCert*)XMALLOC(sizeof(DecodedCert), NULL,
DYNAMIC_TYPE_TMP_BUFFER); DYNAMIC_TYPE_TMP_BUFFER);
if (cert == NULL) if (cert == NULL)
return NULL; return MEMORY_E;
#endif #endif
/* Create a DecodedCert object and copy fields into WOLFSSL_X509 object. /* 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); WOLFSSL_LEAVE("wolfSSL_BN_mod_exp", ret);
(void)ret;
return SSL_FAILURE; return SSL_FAILURE;
} }
@@ -21199,6 +21190,7 @@ WOLFSSL_X509* wolfSSL_get_chain_X509(WOLFSSL_X509_CHAIN* chain, int idx)
#endif #endif
} }
} }
(void)ret;
return x509; return x509;
} }
@@ -21568,16 +21560,16 @@ void* wolfSSL_GetRsaDecCtx(WOLFSSL* ssl)
} }
#endif /* ifndef NO_CERTS */ #endif /* ifndef NO_CERTS */
#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || defined(OPENSSL_EXTRA)
#ifndef NO_CERTS #ifndef NO_CERTS
void wolfSSL_X509_NAME_free(WOLFSSL_X509_NAME *name){ void wolfSSL_X509_NAME_free(WOLFSSL_X509_NAME *name){
FreeX509Name(name, NULL); FreeX509Name(name, NULL);
WOLFSSL_ENTER("wolfSSL_X509_NAME_free"); WOLFSSL_ENTER("wolfSSL_X509_NAME_free");
} }
#endif /* NO_CERTS */ #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) 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; return NULL;
} }
#endif /* HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || HAVE_STUNNEL */ #endif /* HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || HAVE_STUNNEL || WOLFSSL_NGINX || HAVE_POCO_LIB */
#endif #endif /* OPENSSL_EXTRA */
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA

View File

@@ -3564,19 +3564,19 @@ int TLSX_UseSessionTicket(TLSX** extensions, SessionTicket* ticket, void* heap)
return SSL_SUCCESS; return SSL_SUCCESS;
} }
#define STK_VALIDATE_REQUEST TLSX_SessionTicket_ValidateRequest #define WOLF_STK_VALIDATE_REQUEST TLSX_SessionTicket_ValidateRequest
#define STK_GET_SIZE TLSX_SessionTicket_GetSize #define WOLF_STK_GET_SIZE TLSX_SessionTicket_GetSize
#define STK_WRITE TLSX_SessionTicket_Write #define WOLF_STK_WRITE TLSX_SessionTicket_Write
#define STK_PARSE TLSX_SessionTicket_Parse #define WOLF_STK_PARSE TLSX_SessionTicket_Parse
#define STK_FREE(stk, heap) TLSX_SessionTicket_Free((SessionTicket*)stk,(heap)) #define WOLF_STK_FREE(stk, heap) TLSX_SessionTicket_Free((SessionTicket*)stk,(heap))
#else #else
#define STK_FREE(a, b) #define WOLF_STK_FREE(a, b)
#define STK_VALIDATE_REQUEST(a) #define WOLF_STK_VALIDATE_REQUEST(a)
#define STK_GET_SIZE(a, b) 0 #define WOLF_STK_GET_SIZE(a, b) 0
#define STK_WRITE(a, b, c) 0 #define WOLF_STK_WRITE(a, b, c) 0
#define STK_PARSE(a, b, c, d) 0 #define WOLF_STK_PARSE(a, b, c, d) 0
#endif /* HAVE_SESSION_TICKET */ #endif /* HAVE_SESSION_TICKET */
@@ -4229,7 +4229,7 @@ void TLSX_FreeAll(TLSX* list, void* heap)
break; break;
case TLSX_SESSION_TICKET: case TLSX_SESSION_TICKET:
STK_FREE(extension->data, heap); WOLF_STK_FREE(extension->data, heap);
break; break;
case TLSX_QUANTUM_SAFE_HYBRID: case TLSX_QUANTUM_SAFE_HYBRID:
@@ -4310,7 +4310,7 @@ static word16 TLSX_GetSize(TLSX* list, byte* semaphore, byte isRequest)
break; break;
case TLSX_SESSION_TICKET: case TLSX_SESSION_TICKET:
length += STK_GET_SIZE((SessionTicket*)extension->data, length += WOLF_STK_GET_SIZE((SessionTicket*)extension->data,
isRequest); isRequest);
break; break;
@@ -4393,7 +4393,7 @@ static word16 TLSX_Write(TLSX* list, byte* output, byte* semaphore,
break; break;
case TLSX_SESSION_TICKET: case TLSX_SESSION_TICKET:
offset += STK_WRITE((SessionTicket*)extension->data, offset += WOLF_STK_WRITE((SessionTicket*)extension->data,
output + offset, isRequest); output + offset, isRequest);
break; break;
@@ -4797,7 +4797,7 @@ word16 TLSX_GetRequestSize(WOLFSSL* ssl)
EC_VALIDATE_REQUEST(ssl, semaphore); EC_VALIDATE_REQUEST(ssl, semaphore);
QSH_VALIDATE_REQUEST(ssl, semaphore); QSH_VALIDATE_REQUEST(ssl, semaphore);
STK_VALIDATE_REQUEST(ssl); WOLF_STK_VALIDATE_REQUEST(ssl);
if (ssl->extensions) if (ssl->extensions)
length += TLSX_GetSize(ssl->extensions, semaphore, 1); length += TLSX_GetSize(ssl->extensions, semaphore, 1);
@@ -4832,7 +4832,7 @@ word16 TLSX_WriteRequest(WOLFSSL* ssl, byte* output)
offset += OPAQUE16_LEN; /* extensions length */ offset += OPAQUE16_LEN; /* extensions length */
EC_VALIDATE_REQUEST(ssl, semaphore); EC_VALIDATE_REQUEST(ssl, semaphore);
STK_VALIDATE_REQUEST(ssl); WOLF_STK_VALIDATE_REQUEST(ssl);
QSH_VALIDATE_REQUEST(ssl, semaphore); QSH_VALIDATE_REQUEST(ssl, semaphore);
if (ssl->extensions) if (ssl->extensions)
@@ -5031,7 +5031,7 @@ int TLSX_Parse(WOLFSSL* ssl, byte* input, word16 length, byte isRequest,
case TLSX_SESSION_TICKET: case TLSX_SESSION_TICKET:
WOLFSSL_MSG("Session Ticket extension received"); WOLFSSL_MSG("Session Ticket extension received");
ret = STK_PARSE(ssl, input + offset, size, isRequest); ret = WOLF_STK_PARSE(ssl, input + offset, size, isRequest);
break; break;
case TLSX_QUANTUM_SAFE_HYBRID: case TLSX_QUANTUM_SAFE_HYBRID:

View File

@@ -233,8 +233,11 @@ void bench_ntruKeyGen(void);
void bench_rng(void); void bench_rng(void);
#endif /* WC_NO_RNG */ #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) #if defined(DEBUG_WOLFSSL) && !defined(HAVE_VALGRIND)
WOLFSSL_API int wolfSSL_Debugging_ON(); WOLFSSL_API int wolfSSL_Debugging_ON();
@@ -2592,8 +2595,9 @@ void bench_ed25519KeySign(void)
return ( ns / CLOCK * 2.0); return ( ns / CLOCK * 2.0);
} }
#elif defined(WOLFSSL_IAR_ARM_TIME) || defined (WOLFSSL_MDK_ARM) || defined(WOLFSSL_USER_CURRTIME) #elif defined(WOLFSSL_IAR_ARM_TIME) || defined (WOLFSSL_MDK_ARM) || \
/* declared above at line 189 */ defined(WOLFSSL_USER_CURRTIME) || defined(WOLFSSL_CURRTIME_REMAP)
/* declared above at line 239 */
/* extern double current_time(int reset); */ /* extern double current_time(int reset); */
#elif defined FREERTOS #elif defined FREERTOS

View File

@@ -8258,7 +8258,7 @@ static int WriteCertReqBody(DerCert* der, byte* buffer)
/* extensions */ /* extensions */
if (der->extensionsSz) { if (der->extensionsSz) {
XMEMCPY(buffer + idx, der->extensions, min(der->extensionsSz, XMEMCPY(buffer + idx, der->extensions, min(der->extensionsSz,
sizeof(der->extensions))); (int)sizeof(der->extensions)));
idx += der->extensionsSz; idx += der->extensionsSz;
} }

View File

@@ -216,21 +216,32 @@ STATIC INLINE int ConstantCompare(const byte* a, const byte* b, int length)
return compareSum; return compareSum;
} }
#ifndef WOLFSSL_HAVE_MIN #ifndef WOLFSSL_HAVE_MIN
#define 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 #define min min
#endif #endif
STATIC INLINE word32 min(word32 a, word32 b) STATIC INLINE word32 min(word32 a, word32 b)
{ {
return a > b ? b : a; 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 #undef STATIC
#endif /* !WOLFSSL_MISC_INCLUDED && !NO_INLINE */ #endif /* !WOLFSSL_MISC_INCLUDED && !NO_INLINE */
#endif /* WOLF_CRYPT_MISC_C */ #endif /* WOLF_CRYPT_MISC_C */

View File

@@ -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); 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) #elif defined(WOLFSSL_SGX)
int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) 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; return RAN_BLOCK_E;
} }
} }
#elif defined(FREESCALE_KSDK_2_0_RNGA) #elif defined(FREESCALE_KSDK_2_0_RNGA)
int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) 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; 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) #elif defined(WOLFSSL_ATMEL)
#include <wolfssl/wolfcrypt/port/atmel/atmel.h> #include <wolfssl/wolfcrypt/port/atmel/atmel.h>
int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
{ {
int ret = 0; int ret = 0;

View File

@@ -2741,10 +2741,8 @@ int mp_rand_prime(mp_int* N, int len, WC_RNG* rng, void* heap)
switch(err) { switch(err) {
case FP_VAL: case FP_VAL:
return MP_VAL; return MP_VAL;
break;
case FP_MEM: case FP_MEM:
return MP_MEM; return MP_MEM;
break;
default: default:
break; break;
} }

View File

@@ -778,7 +778,7 @@ int wolfSSL_CryptHwMutexUnLock(void) {
int wc_FreeMutex(wolfSSL_Mutex* m) int wc_FreeMutex(wolfSSL_Mutex* m)
{ {
tk_del_sem( m->id ); tk_del_sem(m->id);
return 0; return 0;
} }
@@ -796,9 +796,12 @@ int wolfSSL_CryptHwMutexUnLock(void) {
/**** uT-Kernel malloc/free ***/ /**** uT-Kernel malloc/free ***/
static ID ID_wolfssl_MPOOL = 0; static ID ID_wolfssl_MPOOL = 0;
static T_CMPL wolfssl_MPOOL = static T_CMPL wolfssl_MPOOL = {
{(void *)NULL, NULL, /* Extended information */
TA_TFIFO , 0, "wolfSSL_MPOOL"}; 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) { int uTKernel_init_mpool(unsigned int sz) {
ER ercd; ER ercd;
@@ -808,7 +811,7 @@ int wolfSSL_CryptHwMutexUnLock(void) {
ID_wolfssl_MPOOL = ercd; ID_wolfssl_MPOOL = ercd;
return 0; return 0;
} else { } else {
return -1; return (int)ercd;
} }
} }
@@ -826,7 +829,7 @@ int wolfSSL_CryptHwMutexUnLock(void) {
void *uTKernel_realloc(void *p, unsigned int sz) { void *uTKernel_realloc(void *p, unsigned int sz) {
ER ercd; ER ercd;
void *newp; void *newp;
if(p) { if (p) {
ercd = tk_get_mpl(ID_wolfssl_MPOOL, sz, (VP)&newp, TMO_FEVR); ercd = tk_get_mpl(ID_wolfssl_MPOOL, sz, (VP)&newp, TMO_FEVR);
if (ercd == E_OK) { if (ercd == E_OK) {
XMEMCPY(newp, p, sz); XMEMCPY(newp, p, sz);

View File

@@ -5277,6 +5277,9 @@ byte GetEntropy(ENTROPY_CMD cmd, byte* out)
#elif defined(WOLFSSL_MKD_SHELL) #elif defined(WOLFSSL_MKD_SHELL)
#define CERT_PREFIX "" #define CERT_PREFIX ""
#define CERT_PATH_SEP "/" #define CERT_PATH_SEP "/"
#elif defined(WOLFSSL_uTKERNEL2)
#define CERT_PREFIX "/uda/"
#define CERT_PATH_SEP "/"
#else #else
#define CERT_PREFIX "./" #define CERT_PREFIX "./"
#define CERT_PATH_SEP "/" #define CERT_PATH_SEP "/"
@@ -6106,7 +6109,7 @@ int rsa_test(void)
tmp = (byte*)XMALLOC(FOURK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); tmp = (byte*)XMALLOC(FOURK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
if (tmp == NULL) if (tmp == NULL)
return -40; return -38;
#ifdef USE_CERT_BUFFERS_1024 #ifdef USE_CERT_BUFFERS_1024
XMEMCPY(tmp, client_key_der_1024, sizeof_client_key_der_1024); XMEMCPY(tmp, client_key_der_1024, sizeof_client_key_der_1024);

View File

@@ -90,6 +90,14 @@
#include <netdb.h> #include <netdb.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <io.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) #elif !defined(WOLFSSL_NO_SOCK)
#include <sys/types.h> #include <sys/types.h>
#include <errno.h> #include <errno.h>

View File

@@ -471,9 +471,9 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
/* Lighthttp compatibility */ /* Lighthttp compatibility */
#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) \ #if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) || \
|| defined(HAVE_STUNNEL) \ defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || \
|| defined(WOLFSSL_NGINX) defined(HAVE_POCO_LIB)
typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY; typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY;
#define X509_NAME_free wolfSSL_X509_NAME_free #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 SSL_dup_CA_list wolfSSL_dup_CA_list
#define NID_commonName 0x03 /* matchs ASN_COMMON_NAME in asn.h */ #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_nid2ln wolfSSL_OBJ_nid2ln
#define OBJ_txt2nid wolfSSL_OBJ_txt2nid #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_read_bio_DSAparams wolfSSL_PEM_read_bio_DSAparams
#define PEM_write_bio_X509 wolfSSL_PEM_write_bio_X509 #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 SSL_CTX_set_tmp_dh wolfSSL_CTX_set_tmp_dh
#define BIO_new_file wolfSSL_BIO_new_file #define BIO_new_file wolfSSL_BIO_new_file

View File

@@ -68,12 +68,20 @@ void ByteReverseWords64(word64*, const word64*, word32);
#endif /* WORD64_AVAILABLE */ #endif /* WORD64_AVAILABLE */
#ifndef WOLFSSL_HAVE_MIN #ifndef WOLFSSL_HAVE_MIN
#if defined(HAVE_FIPS) && !defined(min) #if defined(HAVE_FIPS) && !defined(min) /* so ifdef check passes */
#define min min #define min min
#endif #endif
WOLFSSL_LOCAL word32 min(word32 a, word32 b); WOLFSSL_LOCAL word32 min(word32 a, word32 b);
#endif #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 */ #endif /* NO_INLINE */

View File

@@ -460,36 +460,38 @@ extern void uITRON4_free(void *p) ;
#endif #endif
#if defined(WOLFSSL_uTKERNEL2) #if defined(WOLFSSL_uTKERNEL2)
#define WOLFSSL_CLOSESOCKET #ifndef NO_TKERNEL_MEM_POOL
#define XMALLOC_USER #define XMALLOC_OVERRIDE
int uTKernel_init_mpool(unsigned int sz) ; /* initializing malloc pool */ int uTKernel_init_mpool(unsigned int sz); /* initializing malloc pool */
void *uTKernel_malloc(unsigned int sz) ; void* uTKernel_malloc(unsigned int sz);
void *uTKernel_realloc(void *p, unsigned int sz) ; void* uTKernel_realloc(void *p, unsigned int sz);
void uTKernel_free(void *p) ; void uTKernel_free(void *p);
#define XMALLOC(s, h, type) uTKernel_malloc((s)) #define XMALLOC(s, h, type) uTKernel_malloc((s))
#define XREALLOC(p, n, h, t) uTKernel_realloc((p), (n)) #define XREALLOC(p, n, h, t) uTKernel_realloc((p), (n))
#define XFREE(p, h, type) uTKernel_free((p)) #define XFREE(p, h, type) uTKernel_free((p))
#endif
#include <stdio.h> #ifndef NO_STDIO_FGETS_REMAP
#include "tm/tmonitor.h" #include <stdio.h>
static char *fgets(char *buff, int sz, FILE *fp) #include "tm/tmonitor.h"
/*static char * gets(char *buff)*/
{ /* static char* gets(char *buff); */
char * p = buff ; static char* fgets(char *buff, int sz, FILE *fp) {
*p = '\0' ; char * p = buff;
while(1) { *p = '\0';
*p = tm_getchar(-1) ; while (1) {
tm_putchar(*p) ; *p = tm_getchar(-1);
if(*p == '\r') { tm_putchar(*p);
tm_putchar('\n') ; if (*p == '\r') {
*p = '\0' ; tm_putchar('\n');
break ; *p = '\0';
break;
}
p++;
} }
p ++ ; return buff;
} }
return buff ; #endif /* !NO_STDIO_FGETS_REMAP */
}
#endif #endif
@@ -1210,7 +1212,8 @@ static char *fgets(char *buff, int sz, FILE *fp)
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \ #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 #define USE_WOLFSSL_MEMORY
#endif #endif

View File

@@ -184,6 +184,8 @@
extern void *XMALLOC(size_t n, void* heap, int type); extern void *XMALLOC(size_t n, void* heap, int type);
extern void *XREALLOC(void *p, 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); 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) #elif defined(NO_WOLFSSL_MEMORY)
/* just use plain C stdlib stuff if desired */ /* just use plain C stdlib stuff if desired */
#include <stdlib.h> #include <stdlib.h>
@@ -194,7 +196,7 @@
&& !defined(WOLFSSL_SAFERTOS) && !defined(FREESCALE_MQX) \ && !defined(WOLFSSL_SAFERTOS) && !defined(FREESCALE_MQX) \
&& !defined(FREESCALE_KSDK_MQX) && !defined(FREESCALE_FREE_RTOS) \ && !defined(FREESCALE_KSDK_MQX) && !defined(FREESCALE_FREE_RTOS) \
&& !defined(WOLFSSL_LEANPSK) && !defined(FREERTOS) && !defined(FREERTOS_TCP)\ && !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 */ /* default C runtime, can install different routines at runtime via cbs */
#include <wolfssl/wolfcrypt/memory.h> #include <wolfssl/wolfcrypt/memory.h>
#ifdef WOLFSSL_STATIC_MEMORY #ifdef WOLFSSL_STATIC_MEMORY