Skip to content

Commit 1839a0f

Browse files
committed
Add STM32 bare-metal support for Hash, SAES/AES, PKA and RNG
Direct-register (WOLFSSL_STM32_BARE) wolfCrypt port -- no HAL/StdPeriph -- covering HASH, CRYP/TinyAES/SAES, PKA (V1 + V2) and RNG across the STM32 families (F2/F3/F4/F7/H5/H7/H7RS/L4/L5/G0/G4/U0/U3/U5/WB/WL/WBA/C0/C5/N6/ MP13). Per-family clock-enable macros are centralized via WC_STM32_CLK_EN/ WC_STM32_CLK_DIS. Includes STM32H563 'light' PKA support: H563 can ECDSA-verify in HW but not sign, so WC_STM32_PKA_VERIFY_ONLY (auto-enabled for STM32H563xx) routes sign to software while verify stays on the HW PKA; H573 keeps full PKA.
1 parent 1d93484 commit 1839a0f

9 files changed

Lines changed: 2832 additions & 351 deletions

File tree

.wolfssl_known_macro_extras

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
AES
2+
AES1
3+
AES_CR_CCFC
14
AES_GCM_GMULT_NCT
5+
AES_ICR_CCF
6+
AES_ISR_CCF
7+
AES_SR_CCF
28
AFX_RESOURCE_DLL
39
AFX_TARG_ENU
410
ALLOW_BINARY_MISMATCH_INTROSPECTION
@@ -270,7 +276,11 @@ HARDWARE_CACHE_COHERENCY
270276
HASH_AlgoMode_HASH
271277
HASH_AlgoMode_HMAC
272278
HASH_BYTE_SWAP
279+
HASH_CR_ALGO_1
280+
HASH_CR_DATATYPE_0
281+
HASH_CR_DATATYPE_1
273282
HASH_CR_LKEY
283+
HASH_CR_MODE
274284
HASH_DIGEST
275285
HASH_DataType_8b
276286
HASH_IMR_DCIE
@@ -493,14 +503,37 @@ OTHER_BOARD
493503
O_CLOEXEC
494504
PEER_INFO
495505
PERF_FLAG_FD_CLOEXEC
506+
PKA_CLRFR_OPERRFC
507+
PKA_CR_OPERRIE
496508
PKA_ECC_SCALAR_MUL_IN_B_COEFF
509+
PKA_SR_INITOK
510+
PKA_SR_OPERRF
497511
PLATFORMIO
498512
PLUTON_CRYPTO_ECC
499513
PRINT_SESSION_STATS
500514
PTHREAD_STACK_MIN
501515
QAT_ENABLE_HASH
502516
QAT_ENABLE_RNG
503517
QAT_USE_POLLING_CHECK
518+
RCC_AHB1ENR_PKAEN
519+
RCC_AHB2ENR1_AESEN
520+
RCC_AHB2ENR1_HASHEN
521+
RCC_AHB2ENR1_PKAEN
522+
RCC_AHB2ENR1_SAESEN
523+
RCC_AHB2ENR_AESEN
524+
RCC_AHB2ENR_HASHEN
525+
RCC_AHB2ENR_PKAEN
526+
RCC_AHB2ENR_SAESEN
527+
RCC_AHB2RSTR_PKARST
528+
RCC_AHB3ENR_AESEN
529+
RCC_AHB3ENR_CRYPEN
530+
RCC_AHB3ENR_HASHEN
531+
RCC_AHB3ENR_PKAEN
532+
RCC_AHB3ENR_RNGEN
533+
RCC_AHB3ENR_SAESEN
534+
RCC_MP_AHB5ENSETR_CRYP1EN
535+
RCC_MP_AHB5ENSETR_HASH1EN
536+
RCC_MP_AHB5ENSETR_RNG1EN
504537
RC_NO_RNG
505538
REDIRECTION_IN3_KEYELMID
506539
REDIRECTION_IN3_KEYID
@@ -511,10 +544,18 @@ REDIRECTION_OUT2_KEYID
511544
RENESAS_T4_USE
512545
RHEL_MAJOR
513546
RHEL_RELEASE_CODE
547+
RNG_CAND_NIST_CR_VALUE
548+
RNG_CAND_NIST_HTCR_VALUE
549+
RNG_CAND_NIST_NSCR_VALUE
550+
RNG_CR_CONDRST
551+
RNG_SR_BUSY
514552
RTC_ALARMSUBSECONDMASK_ALL
515553
RTE_CMSIS_RTOS_RTX
516554
RTOS_MODULE_NET_AVAIL
517555
RTPLATFORM
556+
SAES
557+
SAES_CR_EN
558+
SAES_S
518559
SAL_IOMMU_CODE
519560
SA_INTERRUPT
520561
SCEKEY_INSTALLED
@@ -577,6 +618,7 @@ STM32WB55xx
577618
STM32WBA52xx
578619
STM32WL55xx
579620
STM32_AESGCM_PARTIAL
621+
STM32_AES_CLEAR_INST
580622
STM32_HW_CLOCK_AUTO
581623
STM32_NUTTX_RNG
582624
STSAFE_HOST_KEY_CIPHER
@@ -681,6 +723,11 @@ WC_SLHDSA_KERNEL_ASM
681723
WC_SLHDSA_NO_ASM
682724
WC_SLHDSA_VERBOSE_DEBUG
683725
WC_SSIZE_TYPE
726+
WC_STM32_PKA_DIAG
727+
WC_STM32_RNG_CED_DISABLE
728+
WC_STM32_RNG_DIAG
729+
WC_STM32_RNG_NO_NIST_INIT
730+
WC_STM32_SAES_DIAG
684731
WC_STRICT_SIG
685732
WC_USE_PIE_FENCEPOSTS_FOR_FIPS
686733
WC_WANT_FLAG_DONT_USE_VECTOR_OPS
@@ -920,9 +967,10 @@ WOLFSSL_SP_ARM32_UDIV
920967
WOLFSSL_SP_FAST_NCT_EXPTMOD
921968
WOLFSSL_SP_INT_SQR_VOLATILE
922969
WOLFSSL_STACK_CHECK
970+
WOLFSSL_STM32C5
971+
WOLFSSL_STM32F3
923972
WOLFSSL_STM32F427_RNG
924-
WOLFSSL_STM32U5_DHUK
925-
WOLFSSL_STM32_RNG_NOLIB
973+
WOLFSSL_STM32U0
926974
WOLFSSL_STRONGEST_HASH_SIG
927975
WOLFSSL_STSAFE_TAKES_SLOT
928976
WOLFSSL_TELIT_M2MB

0 commit comments

Comments
 (0)