From f323964e8ae3642c0d57088a7e9d70a2c4f0efff Mon Sep 17 00:00:00 2001 From: Daniele Lacamera Date: Thu, 27 Jan 2022 16:23:23 +0100 Subject: [PATCH] Update TIRTOS module Use SP_MATH by default. Added missing object files. --- tirtos/packages/ti/net/wolfssl/package.bld | 4 +++ wolfcrypt/src/random.c | 2 +- wolfssl/wolfcrypt/settings.h | 41 +++++++++++++++------- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/tirtos/packages/ti/net/wolfssl/package.bld b/tirtos/packages/ti/net/wolfssl/package.bld index 9610b424c..830ea03ab 100644 --- a/tirtos/packages/ti/net/wolfssl/package.bld +++ b/tirtos/packages/ti/net/wolfssl/package.bld @@ -26,6 +26,7 @@ var wolfSSLObjList = [ "wolfcrypt/src/hmac.c", "wolfcrypt/src/hash.c", "wolfcrypt/src/integer.c", + "wolfcrypt/src/kdf.c", "wolfcrypt/src/logging.c", "wolfcrypt/src/md4.c", "wolfcrypt/src/md5.c", @@ -38,6 +39,9 @@ var wolfSSLObjList = [ "wolfcrypt/src/sha.c", "wolfcrypt/src/sha256.c", "wolfcrypt/src/sha512.c", + "wolfcrypt/src/sp_int.c", + "wolfcrypt/src/sp_c32.c", + "wolfcrypt/src/sp_cortexm.c", "wolfcrypt/src/tfm.c", "wolfcrypt/src/wc_port.c", "wolfcrypt/src/wolfmath.c", diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 724e86a8c..c633ff874 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -2106,7 +2106,7 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) #endif /* WOLFSSL_STM32_CUBEMX */ #elif defined(WOLFSSL_TIRTOS) - + #warning "potential for not enough entropy, currently being used for testing" #include #include int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 1af36f08c..7ebf1d59c 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -375,11 +375,13 @@ #define SINGLE_THREADED #define WOLFSSL_USER_IO #define NO_FILESYSTEM - #define CUSTOM_RAND_TYPE uint16_t - #define CUSTOM_RAND_GENERATE random_rand + #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(); + return clock_seconds(); } #endif @@ -504,7 +506,9 @@ #include "pico_stack.h" #include "pico_constants.h" #include "pico_protocol.h" - #define CUSTOM_RAND_GENERATE pico_rand + #ifndef CUSTOM_RAND_GENERATE + #define CUSTOM_RAND_GENERATE pico_rand + #endif #endif #ifdef WOLFSSL_PICOTCP_DEMO @@ -823,16 +827,35 @@ extern void uITRON4_free(void *p) ; #define NO_MAIN_DRIVER #endif +#ifdef WOLFSSL_TI_CRYPT + #define NO_GCM_ENCRYPT_EXTRA + #define NO_PUBLIC_GCM_SET_IV + #define NO_PUBLIC_CCM_SET_NONCE +#endif + #ifdef WOLFSSL_TIRTOS #define SIZEOF_LONG_LONG 8 #define NO_WRITEV #define NO_WOLFSSL_DIR - #define USE_FAST_MATH + + /* Use SP_MATH by default, unless + * specified in user_settings. + */ + #ifndef USE_FAST_MATH + #define USE_SP_MATH + #define SP_MATH_ALL + #define WOLFSSL_HAVE_SP_ECC + #define SP_WORD_SIZE 32 + #define WOLFSSL_HAVE_SP_RSA + #define WOLFSSL_SP_4096 + #endif #define TFM_TIMING_RESISTANT #define ECC_TIMING_RESISTANT #define WC_RSA_BLINDING #define NO_DEV_RANDOM #define NO_FILESYSTEM + #define NO_SIG_WRAPPER + #define NO_MAIN_DRIVER #define USE_CERT_BUFFERS_2048 #define NO_ERROR_STRINGS /* Uncomment this setting if your toolchain does not offer time.h header */ @@ -842,21 +865,13 @@ extern void uITRON4_free(void *p) ; #define USE_WOLF_STRTOK /* use with HAVE_ALPN */ #define HAVE_TLS_EXTENSIONS #define HAVE_AESGCM - #ifdef WOLFSSL_TI_CRYPT - #define NO_GCM_ENCRYPT_EXTRA - #define NO_PUBLIC_GCM_SET_IV - #define NO_PUBLIC_CCM_SET_NONCE - #endif #define HAVE_SUPPORTED_CURVES - #define ALT_ECC_SIZE - #ifdef __IAR_SYSTEMS_ICC__ #pragma diag_suppress=Pa089 #elif !defined(__GNUC__) /* Suppress the sslpro warning */ #pragma diag_suppress=11 #endif - #include #endif