Support for STM32H7S (tested on NUCLEO-H7S3L8). It supports hardware crypto for RNG, Hash, AES and PKA. Added future config option for DTLS v1.3. Support DTLS v1.3 only reduce code size (tested with: ./configure --enable-dtls13 --enable-dtls --disable-tlsv12 CFLAGS="-DWOLFSSL_SEND_HRR_COOKIE").

This commit is contained in:
David Garske
2025-02-25 13:07:38 -08:00
parent 3557cc764a
commit 557abcf76a
10 changed files with 259 additions and 54 deletions

View File

@ -50,6 +50,9 @@ extern "C" {
/*---------- WOLF_CONF_DTLS -----------*/
#define WOLF_CONF_DTLS 0
/*---------- WOLF_CONF_DTLS13 -----------*/
#define WOLF_CONF_DTLS13 0
/*---------- WOLF_CONF_MATH -----------*/
#define WOLF_CONF_MATH 4
@ -119,12 +122,24 @@ extern "C" {
/*---------- WOLF_CONF_TEST -----------*/
#define WOLF_CONF_TEST 1
/*---------- WOLF_CONF_PQM4 -----------*/
#define WOLF_CONF_PQM4 0
/*---------- WOLF_CONF_KYBER -----------*/
#define WOLF_CONF_KYBER 0
/*---------- WOLF_CONF_ARMASM -----------*/
#define WOLF_CONF_ARMASM 1
/*---------- WOLF_CONF_IO -----------*/
#define WOLF_CONF_IO 1
/*---------- WOLF_CONF_RESUMPTION -----------*/
#define WOLF_CONF_RESUMPTION 0
/*---------- WOLF_CONF_TPM -----------*/
#define WOLF_CONF_TPM 0
/*---------- WOLF_CONF_PK -----------*/
#define WOLF_CONF_PK 0
/* ------------------------------------------------------------------------- */
/* Hardware platform */
/* ------------------------------------------------------------------------- */
@ -166,6 +181,12 @@ extern "C" {
#undef NO_STM32_CRYPTO
#define STM32_HAL_V2
#define HAL_CONSOLE_UART huart3
#elif defined(STM32H7S3xx)
#define WOLFSSL_STM32H7S
#undef NO_STM32_HASH
#undef NO_STM32_CRYPTO
#define WOLFSSL_STM32_PKA
#define HAL_CONSOLE_UART huart3
#elif defined(STM32H753xx)
#define WOLFSSL_STM32H7
#undef NO_STM32_HASH
@ -229,14 +250,22 @@ extern "C" {
#define HAL_CONSOLE_UART huart3
#define STM32_HAL_V2
#undef NO_STM32_HASH
#elif defined(STM32MP135Fxx)
#define WOLFSSL_STM32MP13
#define HAL_CONSOLE_UART huart4
#define STM32_HAL_V2
#undef NO_STM32_HASH
#undef NO_STM32_CRYPTO
#define WOLFSSL_STM32_PKA
#define WOLFSSL_STM32_PKA_V2
#else
#warning Please define a hardware platform!
/* This means there is not a pre-defined platform for your board/CPU */
/* You need to define a CPU type, HW crypto and debug UART */
/* CPU Type: WOLFSSL_STM32F1, WOLFSSL_STM32F2, WOLFSSL_STM32F4,
WOLFSSL_STM32F7, WOLFSSL_STM32H7, WOLFSSL_STM32L4, WOLFSSL_STM32L5,
WOLFSSL_STM32G0, WOLFSSL_STM32WB and WOLFSSL_STM32U5 */
WOLFSSL_STM32G0, WOLFSSL_STM32G4, WOLFSSL_STM32WB, WOLFSSL_STM32U5 and
WOLFSSL_STM32MP13 */
#define WOLFSSL_STM32F4
/* Debug UART used for printf */
@ -263,6 +292,8 @@ extern "C" {
#define WOLFSSL_STM32_CUBEMX
#define WOLFSSL_SMALL_STACK
#define WOLFSSL_IGNORE_FILE_WARN
#define WOLFSSL_WOLFSSH
/* ------------------------------------------------------------------------- */
/* Network stack: 1=User IO (custom), 2=LWIP (posix), 3=LWIP (native) */
@ -382,6 +413,10 @@ extern "C" {
#if defined(WOLF_CONF_DTLS) && WOLF_CONF_DTLS == 1
#define WOLFSSL_DTLS
#endif
#if defined(WOLF_CONF_DTLS13) && WOLF_CONF_DTLS13 == 1
#define WOLFSSL_DTLS13
#define WOLFSSL_SEND_HRR_COOKIE
#endif
#if defined(WOLF_CONF_PSK) && WOLF_CONF_PSK == 0
#define NO_PSK
#endif
@ -630,25 +665,25 @@ extern "C" {
/* NOTE: this is after the hashing section to override the potential SHA3 undef
* above. */
#if defined(WOLF_CONF_KYBER) && WOLF_CONF_KYBER == 1
#undef WOLFSSL_EXPERIMENTAL_SETTINGS
#define WOLFSSL_EXPERIMENTAL_SETTINGS
#undef WOLFSSL_EXPERIMENTAL_SETTINGS
#define WOLFSSL_EXPERIMENTAL_SETTINGS
#undef WOLFSSL_HAVE_KYBER
#define WOLFSSL_HAVE_KYBER
#undef WOLFSSL_HAVE_KYBER
#define WOLFSSL_HAVE_KYBER
#undef WOLFSSL_WC_KYBER
#define WOLFSSL_WC_KYBER
#undef WOLFSSL_WC_KYBER
#define WOLFSSL_WC_KYBER
#undef WOLFSSL_NO_SHAKE128
#undef WOLFSSL_SHAKE128
#define WOLFSSL_SHAKE128
#undef WOLFSSL_NO_SHAKE128
#undef WOLFSSL_SHAKE128
#define WOLFSSL_SHAKE128
#undef WOLFSSL_NO_SHAKE256
#undef WOLFSSL_SHAKE256
#define WOLFSSL_SHAKE256
#undef WOLFSSL_NO_SHAKE256
#undef WOLFSSL_SHAKE256
#define WOLFSSL_SHAKE256
#undef WOLFSSL_SHA3
#define WOLFSSL_SHA3
#undef WOLFSSL_SHA3
#define WOLFSSL_SHA3
#endif /* WOLF_CONF_KYBER */
/* ------------------------------------------------------------------------- */
@ -663,6 +698,7 @@ extern "C" {
#define WOLFSSL_ARMASM_INLINE
#define WOLFSSL_ARMASM_NO_HW_CRYPTO
#define WOLFSSL_ARMASM_NO_NEON
#define WOLFSSL_ARMASM_THUMB2
#define WOLFSSL_ARM_ARCH 7
/* Disable H/W offloading if accelerating S/W crypto */
#undef NO_STM32_HASH