diff --git a/.wolfssl_known_macro_extras b/.wolfssl_known_macro_extras index 29554d91021..68b6b90f425 100644 --- a/.wolfssl_known_macro_extras +++ b/.wolfssl_known_macro_extras @@ -1234,6 +1234,7 @@ WOLFSSL_TLS13_TICKET_CHECK_PSK_MODES WOLFSSL_TLSX_PQC_MLKEM_STORE_PRIV_KEY WOLFSSL_TRACK_MEMORY_FULL WOLFSSL_TRAP_MALLOC_SZ +WOLFSSL_UIP WOLFSSL_UNALIGNED_64BIT_ACCESS WOLFSSL_USER_DEFINED_ATOMICS WOLFSSL_USER_FILESYSTEM diff --git a/src/internal.c b/src/internal.c index 1c5196874d2..74598ccaa46 100644 --- a/src/internal.c +++ b/src/internal.c @@ -3259,15 +3259,6 @@ int InitSSL_Ctx(WOLFSSL_CTX* ctx, WOLFSSL_METHOD* method, void* heap) #error Micrium port does not support DTLS session export yet #endif #endif - #elif defined WOLFSSL_UIP - ctx->CBIORecv = uIPReceive; - ctx->CBIOSend = uIPSend; - #ifdef WOLFSSL_DTLS - if (method->version.major == DTLS_MAJOR) { - ctx->CBIOSendTo = uIPSendTo; - ctx->CBIORecvFrom = uIPRecvFrom; - } - #endif #else #ifndef WOLFSSL_DTLS_ONLY ctx->CBIORecv = EmbedReceive; diff --git a/src/wolfio.c b/src/wolfio.c index 3b44df7a569..9873457ebee 100644 --- a/src/wolfio.c +++ b/src/wolfio.c @@ -83,7 +83,7 @@ int Nucleus_Net_Errno; #if defined(HAVE_RTP_SYS) #elif defined(EBSNET) #elif defined(NETOS) - #elif !defined(DEVKITPRO) && !defined(WOLFSSL_CONTIKI) \ + #elif !defined(DEVKITPRO) \ && !defined(WOLFSSL_WICED) \ && !defined(WOLFSSL_GNRC) && !defined(WOLFSSL_RIOT_OS) #ifdef HAVE_NETDB_H @@ -3516,113 +3516,6 @@ int MicriumGenerateCookie(WOLFSSL* ssl, byte *buf, int sz, void *ctx) #endif /* MICRIUM */ -#ifdef WOLFSSL_UIP -#include -#include - -/* uIP TCP/IP port, using the native tcp/udp socket api. - * TCP and UDP are currently supported with the callbacks below. - * - */ -/* The uIP tcp send callback - * return : bytes sent, or error - */ -int uIPSend(WOLFSSL* ssl, char* buf, int sz, void* _ctx) -{ - uip_wolfssl_ctx *ctx = (struct uip_wolfssl_ctx *)_ctx; - int total_written = 0; - (void)ssl; - do { - int ret; - unsigned int bytes_left = sz - total_written; - unsigned int max_sendlen = tcp_socket_max_sendlen(&ctx->conn.tcp); - if (bytes_left > max_sendlen) { - fprintf(stderr, "uIPSend: Send limited by buffer\r\n"); - bytes_left = max_sendlen; - } - if (bytes_left == 0) { - fprintf(stderr, "uIPSend: Buffer full!\r\n"); - break; - } - ret = tcp_socket_send(&ctx->conn.tcp, (unsigned char *)buf + total_written, bytes_left); - if (ret <= 0) - break; - total_written += ret; - } while(total_written < sz); - if (total_written == 0) - return WOLFSSL_CBIO_ERR_WANT_WRITE; - return total_written; -} - -int uIPSendTo(WOLFSSL* ssl, char* buf, int sz, void* _ctx) -{ - uip_wolfssl_ctx *ctx = (struct uip_wolfssl_ctx *)_ctx; - int ret = 0; - (void)ssl; - ret = udp_socket_sendto(&ctx->conn.udp, (unsigned char *)buf, sz, &ctx->peer_addr, ctx->peer_port ); - if (ret == 0) - return WOLFSSL_CBIO_ERR_WANT_WRITE; - return ret; -} - -/* The uIP uTCP/IP receive callback - * return : nb bytes read, or error - */ -int uIPReceive(WOLFSSL *ssl, char *buf, int sz, void *_ctx) -{ - uip_wolfssl_ctx *ctx = (uip_wolfssl_ctx *)_ctx; - if (!ctx || !ctx->ssl_rx_databuf) - return WOLFSSL_FATAL_ERROR; - (void)ssl; - if (ctx->ssl_rb_len > 0) { - if (sz > ctx->ssl_rb_len - ctx->ssl_rb_off) - sz = ctx->ssl_rb_len - ctx->ssl_rb_off; - XMEMCPY(buf, ctx->ssl_rx_databuf + ctx->ssl_rb_off, sz); - ctx->ssl_rb_off += sz; - if (ctx->ssl_rb_off >= ctx->ssl_rb_len) { - ctx->ssl_rb_len = 0; - ctx->ssl_rb_off = 0; - } - return sz; - } else { - return WOLFSSL_CBIO_ERR_WANT_READ; - } -} - -/* uIP DTLS Generate Cookie callback - * return : number of bytes copied into buf, or error - */ -#if defined(NO_SHA) && !defined(NO_SHA256) - #define UIP_COOKIE_DIGEST_SIZE WC_SHA256_DIGEST_SIZE -#elif !defined(NO_SHA) - #define UIP_COOKIE_DIGEST_SIZE WC_SHA_DIGEST_SIZE -#else - #error Must enable either SHA-1 or SHA256 (or both) for uIP. -#endif -int uIPGenerateCookie(WOLFSSL* ssl, byte *buf, int sz, void *_ctx) -{ - uip_wolfssl_ctx *ctx = (uip_wolfssl_ctx *)_ctx; - byte token[32]; - byte digest[UIP_COOKIE_DIGEST_SIZE]; - int ret = 0; - XMEMSET(token, 0, sizeof(token)); - XMEMCPY(token, &ctx->peer_addr, sizeof(uip_ipaddr_t)); - XMEMCPY(token + sizeof(uip_ipaddr_t), &ctx->peer_port, sizeof(word16)); -#if defined(NO_SHA) && !defined(NO_SHA256) - ret = wc_Sha256Hash(token, sizeof(uip_ipaddr_t) + sizeof(word16), digest); -#else - ret = wc_ShaHash(token, sizeof(uip_ipaddr_t) + sizeof(word16), digest); -#endif - if (ret != 0) - return ret; - if (sz > UIP_COOKIE_DIGEST_SIZE) - sz = UIP_COOKIE_DIGEST_SIZE; - XMEMCPY(buf, digest, sz); - return sz; -} - -#endif /* WOLFSSL_UIP */ - #ifdef WOLFSSL_GNRC #include diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 65bb0a3a277..872d5cc290d 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -11276,7 +11276,7 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) defined(WOLFSSL_LPC43xx) || defined(NO_STM32_RNG) || \ defined(MBED) || defined(WOLFSSL_EMBOS) || \ defined(WOLFSSL_GENSEED_FORTEST) || defined(WOLFSSL_CHIBIOS) || \ - defined(WOLFSSL_CONTIKI) || defined(WOLFSSL_AZSPHERE) + defined(WOLFSSL_AZSPHERE) /* these platforms do not have a default random seed and you'll need to implement your own wc_GenerateSeed or define via diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index ad14fcf5ab4..787aa7d6ce6 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -4042,7 +4042,7 @@ WOLFSSL_API int wolfSSL_make_eap_keys(WOLFSSL* ssl, void* key, unsigned int len, #elif !defined(WOLFSSL_MDK_ARM) && !defined(WOLFSSL_IAR_ARM) && \ !defined(WOLFSSL_ROWLEY_ARM) && !defined(WOLFSSL_EMBOS) && \ !defined(WOLFSSL_FROSTED) && \ - !defined(WOLFSSL_CHIBIOS) && !defined(WOLFSSL_CONTIKI) && \ + !defined(WOLFSSL_CHIBIOS) && \ !defined(WOLFSSL_ZEPHYR) && !defined(NETOS) && \ !defined(WOLFSSL_NDS) #include diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 6564f4aa52a..3296599d94f 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -1367,22 +1367,8 @@ #endif #endif -#if defined(WOLFSSL_CONTIKI) - #include - #define WOLFSSL_UIP - #define NO_WOLFSSL_MEMORY - #define NO_WRITEV - #define SINGLE_THREADED - #define WOLFSSL_USER_IO - #define NO_FILESYSTEM - #ifndef CUSTOM_RAND_GENERATE - #define CUSTOM_RAND_TYPE uint16_t - #define CUSTOM_RAND_GENERATE random_rand - #endif - static inline word32 LowResTimer(void) - { - return clock_seconds(); - } +#if defined(WOLFSSL_CONTIKI) || defined(WOLFSSL_UIP) + #error "Contiki support has been removed" #endif #if defined(WOLFSSL_IAR_ARM) || defined(WOLFSSL_ROWLEY_ARM) diff --git a/wolfssl/wolfio.h b/wolfssl/wolfio.h index 56b3f96879e..d81927d9275 100644 --- a/wolfssl/wolfio.h +++ b/wolfssl/wolfio.h @@ -45,7 +45,7 @@ #if !defined(WOLFSSL_USER_IO) /* Micrium uses NetSock I/O callbacks in wolfio.c */ #if !defined(USE_WOLFSSL_IO) && !defined(MICRIUM) && \ - !defined(WOLFSSL_CONTIKI) && !defined(WOLFSSL_NO_SOCK) + !defined(WOLFSSL_NO_SOCK) #define USE_WOLFSSL_IO #endif #endif @@ -232,7 +232,7 @@ #elif defined(NUCLEUS_PLUS_2_3) #define SO_TYPE 17 /* Socket type */ #define SO_RCVTIMEO 13 /* Recv Timeout */ - #elif !defined(DEVKITPRO) && !defined(WOLFSSL_CONTIKI) \ + #elif !defined(DEVKITPRO) \ && !defined(WOLFSSL_WICED) \ && !defined(WOLFSSL_GNRC) && !defined(WOLFSSL_RIOT_OS) #include @@ -846,39 +846,6 @@ WOLFSSL_API void wolfSSL_SetIOWriteFlags(WOLFSSL* ssl, int flags); WOLFSSL_LOCAL int MicriumSendTo(WOLFSSL* ssl, char* buf, int sz, void* ctx); #endif /* MICRIUM */ -#ifdef WOLFSSL_UIP - - struct uip_wolfssl_ctx { - union socket_connector { - struct tcp_socket tcp; - struct udp_socket udp; - } conn; - WOLFSSL_CTX *ctx; - WOLFSSL *ssl; - byte *input_databuf; - byte *output_databuf; - byte *ssl_rx_databuf; - int ssl_rb_len; - int ssl_rb_off; - struct process *process; - tcp_socket_data_callback_t input_callback; - tcp_socket_event_callback_t event_callback; - int closing; - uip_ipaddr_t peer_addr; - word16 peer_port; - }; - - typedef struct uip_wolfssl_ctx uip_wolfssl_ctx; - - WOLFSSL_LOCAL int uIPSend(WOLFSSL* ssl, char* buf, int sz, void* ctx); - WOLFSSL_LOCAL int uIPReceive(WOLFSSL* ssl, char* buf, int sz, - void* ctx); - WOLFSSL_LOCAL int uIPReceiveFrom(WOLFSSL* ssl, char* buf, int sz, - void* ctx); - WOLFSSL_LOCAL int uIPSendTo(WOLFSSL* ssl, char* buf, int sz, void* ctx); - -#endif - #ifdef WOLFSSL_GNRC #include #include