diff --git a/IDE/VisualDSP/include.am b/IDE/VisualDSP/include.am deleted file mode 100644 index a12daf3ff..000000000 --- a/IDE/VisualDSP/include.am +++ /dev/null @@ -1,6 +0,0 @@ -# vim:ft=automake -# included from Top Level Makefile.am -# All paths should be given relative to the root - -EXTRA_DIST+= IDE/VisualDSP++/user_settings.h -EXTRA_DIST+= IDE/VisualDSP++/wolf-tasks.c diff --git a/IDE/VisualDSP/user_settings.h b/IDE/VisualDSP/user_settings.h index 44cf3c3f5..5d33914ae 100644 --- a/IDE/VisualDSP/user_settings.h +++ b/IDE/VisualDSP/user_settings.h @@ -30,6 +30,11 @@ extern "C" { #include "fusioncfg.h" +/* Previously was included in ssl.c but for the sake of portability and existing + * projects, moved to IDE specific user_settings.h (stdarg.h include) + */ +#include + /* ------------------------------------------------------------------------- */ /* Platform */ /* ------------------------------------------------------------------------- */ @@ -95,6 +100,12 @@ extern "C" { #undef NO_THREAD_LS #define NO_THREAD_LS #endif + + #define NO_ATTRIBUTE_CONSTRUCTOR /* Required on ADSP BLACKFIN where memory + * is zeroized after + * __attribute__((constructor)) and before + * main(); + */ #endif @@ -515,8 +526,6 @@ extern "C" { #define USE_WOLF_STRTOK #define XSTRTOK(s1,d,ptr) wc_strtok((s1),(d),(ptr)) - // TBD drowe: add a new FCL_STRNSTR and implement the new fclStrnstr code in common/clib/string/fclstrstr.c - // For now use the unsafe version #define XSTRNSTR(s1,s2,n) FCL_STRSTR((s1),(s2)) #define XMEMCPY(d,s,l) FCL_MEMCPY((d),(s),(l)) @@ -696,13 +705,7 @@ extern "C" { #define printf FCL_PRINTF - /* CAVP TESTING */ - #define NO_WOLFCAVP_MAIN_DRIVER #define WOLFSSL_BASE16 - #define USE_UART_READ_LINE - #define USE_NORMAL_PRINTF - #define VERIFY_GENERATED_PSS_SIGS - #define NO_ATTRIBUTE_CONSTRUCTOR extern int aes_test_for_fips_hash(void); int wolfcrypt_test_taskEnter(void *args); @@ -715,17 +718,14 @@ extern "C" { #define USE_CERT_BUFFERS_2048 #define USE_CERT_BUFFERS_256 //#define NO_FILESYSTEM - -// #define HAVE_FORCE_FIPS_FAILURE - #define OPENSSL_EXTRA //to test if iprgw project need it. AES_xxx wolfSSL_AES_xxx Aes_EncryptDirect + #define OPENSSL_EXTRA #define OPENSSL_ALL #define HAVE_EX_DATA #define WOLFSSL_EVP_DECRYPT_LEGACY - + /* TLS 1.3 support */ - #define WOLFSSL_TLS13 #define HAVE_TLS_EXTENSIONS #define HAVE_SUPPORTED_CURVES @@ -733,13 +733,13 @@ extern "C" { #define HAVE_HKDF #define HAVE_FFDHE_4096 #define WC_RSA_PSS - + /* for static ciphers */ #define WOLFSSL_STATIC_RSA #define WOLFSSL_STATIC_PSK #define WOLFSSL_STATIC_EPHEMERAL #define WOLFSSL_SNIFFER - + /* TEMPORARY */ #define USING_JTAG #endif /* BLACKFIN_BUILD */ diff --git a/src/internal.c b/src/internal.c index f44268612..6b4abaebf 100644 --- a/src/internal.c +++ b/src/internal.c @@ -77,12 +77,11 @@ #if defined(DEBUG_WOLFSSL) || defined(SHOW_SECRETS) || \ defined(CHACHA_AEAD_TEST) || defined(WOLFSSL_SESSION_EXPORT_DEBUG) #ifndef NO_STDIO_FILESYSTEM - #ifndef FUSION_RTOS - #include - #endif #ifdef FUSION_RTOS - #include - #endif + #include + #else + #include + #endif #endif #endif diff --git a/src/sniffer.c b/src/sniffer.c index 33588059b..6f6d996ec 100644 --- a/src/sniffer.c +++ b/src/sniffer.c @@ -34,7 +34,10 @@ /* only in this file, to avoid confusing future ports leave * these defines here. Do not move to wc_port.h */ -#ifdef FUSION_RTOS +#ifdef USER_CUSTOM_SNIFFX + /* To be implemented in user_settings.h */ + #warning "Please implement Sniffer porting in user_settings.h" +#elif defined(FUSION_RTOS) #include #define XINET_NTOA FNS_INET_NTOA #define XINET_ATON FNS_INET_ATON @@ -47,6 +50,7 @@ #define XNTOHL FNS_NTOHL #define XINADDR_NONE FNS_INADDR_NONE #else + /* default */ #define XINET_NTOA inet_ntoa #define XINET_ATON inet_aton #define XINET_PTON(a,b,c) inet_pton((a),(b),(c)) diff --git a/src/ssl.c b/src/ssl.c index e24193f61..49d0bdcac 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -29,7 +29,6 @@ /* turn on GNU extensions for XVASPRINTF with wolfSSL_BIO_printf */ #undef _GNU_SOURCE #define _GNU_SOURCE - #include #endif #if !defined(WOLFCRYPT_ONLY) || defined(OPENSSL_EXTRA) || \ diff --git a/src/tls13.c b/src/tls13.c index 7aec3a3be..b16cdb1d5 100644 --- a/src/tls13.c +++ b/src/tls13.c @@ -1361,6 +1361,23 @@ end: return (word32)(ktime_get_real_ns() / (ktime_t)1000000); #endif } +#elif defined(FUSION_RTOS) + /* The time in milliseconds. + * Used for tickets to represent difference between when first seen and when + * sending. + * + * returns the time in milliseconds as a 32-bit value. + */ + word32 TimeNowInMilliseconds(void) + { + struct timeval now; + if (FCL_GETTIMEOFDAY(&now, 0) < 0) + return (word32)GETTIME_ERROR; + + /* Convert to milliseconds number. */ + return (word32)(now.tv_sec * 1000 + now.tv_usec / 1000); + } + #else /* The time in milliseconds. * Used for tickets to represent difference between when first seen and when @@ -1371,14 +1388,10 @@ end: word32 TimeNowInMilliseconds(void) { struct timeval now; -#ifdef FUSION_RTOS - if (FCL_GETTIMEOFDAY(&now, 0) < 0) - return (word32)GETTIME_ERROR; - //TODO research why negative error code returns as word32 -#else + if (gettimeofday(&now, 0) < 0) return (word32)GETTIME_ERROR; -#endif + /* Convert to milliseconds number. */ return (word32)(now.tv_sec * 1000 + now.tv_usec / 1000); } diff --git a/src/wolfio.c b/src/wolfio.c index 9ca62700f..1f5030d99 100644 --- a/src/wolfio.c +++ b/src/wolfio.c @@ -697,24 +697,7 @@ int wolfIO_Recv(SOCKET_T sd, char *buf, int sz, int rdFlags) { int recvd; -#ifdef FUSION_RTOS - int err; -retry: - recvd = (int)RECV_FUNCTION(sd, buf, sz, rdFlags, &err); - - if(recvd < 0) { - if(err==63) - { - UARTF("FUSION IO RETRY %d\r\n", err); - fclThreadSleep(10); - goto retry; - } - UARTF("FUSION IO ERROR %d\r\n", err); - } - //TODO handle return value in err -#else recvd = (int)RECV_FUNCTION(sd, buf, sz, rdFlags); -#endif recvd = TranslateReturnCode(recvd, sd); return recvd; @@ -723,22 +706,8 @@ retry: int wolfIO_Send(SOCKET_T sd, char *buf, int sz, int wrFlags) { int sent; -#ifdef FUSION_RTOS - int err; -retry: - sent = (int)SEND_FUNCTION(sd, buf, sz, wrFlags, &err); - if(sent < 0) { - if(err==63) - { - UARTF("FUSION IO SEND RETRY %d\r\n", err); - fclThreadSleep(10); - goto retry; - } - UARTF("FUSION IO SEND ERROR %d\r\n", err); - } -#else + sent = (int)SEND_FUNCTION(sd, buf, sz, wrFlags); -#endif sent = TranslateReturnCode(sent, sd); return sent; @@ -1498,14 +1467,8 @@ int EmbedOcspLookup(void* ctx, const char* url, int urlSz, ret = wolfIO_HttpProcessResponseOcsp(sfd, ocspRespBuf, httpBuf, HTTP_SCRATCH_BUFFER_SIZE, ctx); } - if (sfd != SOCKET_INVALID) { - #ifdef FUSION_RTOS - int err; - CloseSocket(sfd, &err); - #else + if (sfd != SOCKET_INVALID) CloseSocket(sfd); - #endif - } XFREE(httpBuf, ctx, DYNAMIC_TYPE_OCSP); } } diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index bd5f08baa..1ce533e8a 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -491,10 +491,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END VSEEK_END #define XBADFILE -1 #define XFGETS(b,s,f) -2 /* Not ported yet */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(LSR_FS) #include @@ -509,10 +505,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END 0 #define XBADFILE NULL #define XFGETS(b,s,f) -2 /* Not ported yet */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(FREESCALE_MQX) || defined(FREESCALE_KSDK_MQX) #define XFILE MQX_FILE_PTR @@ -526,19 +518,11 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END IO_SEEK_END #define XBADFILE NULL #define XFGETS fgets - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(WOLFSSL_DEOS) #define NO_FILESYSTEM #warning "TODO - DDC-I Certifiable Fast File System for Deos is not integrated" /* #define XFILE bfd * */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(MICRIUM) #include @@ -553,10 +537,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END FS_SEEK_END #define XBADFILE NULL #define XFGETS(b,s,f) -2 /* Not ported yet */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(WOLFSSL_NUCLEUS_1_2) #include "fal/inc/fal.h" @@ -570,10 +550,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XFCLOSE fclose #define XSEEK_END PSEEK_END #define XBADFILE NULL - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(WOLFSSL_APACHE_MYNEWT) #include @@ -589,10 +565,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END 2 #define XBADFILE NULL #define XFGETS(b,s,f) -2 /* Not ported yet */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(WOLFSSL_ZEPHYR) #include @@ -614,10 +586,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END FS_SEEK_END #define XBADFILE NULL #define XFGETS(b,s,f) -2 /* Not ported yet */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(WOLFSSL_TELIT_M2MB) #define XFILE INT32 @@ -631,10 +599,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END M2MB_SEEK_END #define XBADFILE -1 #define XFGETS(b,s,f) -2 /* Not ported yet */ - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined (WOLFSSL_XILINX) #include "xsdps.h" @@ -652,18 +616,14 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XSEEK_END 0 #define XBADFILE NULL #define XFGETS(b,s,f) f_gets((b), (s), (f)) - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #elif defined(FUSION_RTOS) #include #include #include #include - #include - #include + #include + #include #define XFILE FCL_FILE* #define XFOPEN FCL_FOPEN #define XFSEEK FCL_FSEEK @@ -689,6 +649,9 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define dirent fclDirent #define strncasecmp FCL_STRNCASECMP + /* FUSION SPECIFIC ERROR CODE */ + #define FUSION_IO_SEND_E 63 + #elif defined(WOLFSSL_USER_FILESYSTEM) /* To be defined in user_settings.h */ #else @@ -712,10 +675,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XBADFILE NULL #define XFGETS fgets #define XFPRINTF fprintf - #define XVFPRINTF vfprintf - #define XVSNPRINTF vsnprintf - #define XFPUTS fputs - #define XSPRINTF sprintf #if !defined(USE_WINDOWS_API) && !defined(NO_WOLFSSL_DIR)\ && !defined(WOLFSSL_NUCLEUS) && !defined(WOLFSSL_NUCLEUS_1_2) @@ -728,6 +687,22 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #endif #endif +/* Defaults, user may over-ride with user_settings.h or in a porting section + * above + */ +#ifndef XVFPRINTF + #define XVFPRINTF vfprintf +#endif +#ifndef XVSNPRINTF + #define XVSNPRINTF vsnprintf +#endif +#ifndef XFPUTS + #define XFPUTS fputs +#endif +#ifndef XSPRINTF + #define XSPRINTF sprintf +#endif + #ifndef MAX_FILENAME_SZ #define MAX_FILENAME_SZ 256 /* max file name length */ #endif diff --git a/wolfssl/wolfio.h b/wolfssl/wolfio.h index bb6b6cff3..77fcf83ff 100644 --- a/wolfssl/wolfio.h +++ b/wolfssl/wolfio.h @@ -389,7 +389,10 @@ WOLFSSL_API int wolfIO_Recv(SOCKET_T sd, char *buf, int sz, int rdFlags); #define StartTCP() #elif defined(FUSION_RTOS) #ifndef CloseSocket - #define CloseSocket FNS_CLOSE + #define CloseSocket(s) do { \ + int err; \ + FNS_CLOSE(s, &err); \ + } while(0) #endif #else #ifndef CloseSocket