You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Phase 3: Security and FIPS Compliance Audit + 12-OE source-of-truth enablement
Security and FIPS-compliance audit remediation for the wolfCrypt v7.0.0
post-quantum FIPS 140-3 module, plus the source changes required to build and
validate the module across all 12 Operational Environments (userspace and Linux
kernel module; x86_64/i386/aarch64/armv7; Intel/AMD).
linuxkm (Linux kernel module):
- Generalize the per-CPU vector-register save/restore service from x86 to ARM
(kernel_neon_begin/end via WC_LINUXKM_FPU_BEGIN/END); broaden arch guards.
- Extend the in-core-integrity relocation canonicalizer to i386
(R_386_32/R_386_PC32) and ARM (R_ARM_CALL/R_ARM_JUMP24).
- Kbuild arch-conditional crypto -march for wolfcrypt/src/port/arm/*.S; arm32
EABI integer-divide helpers and PIE container mem* placeholders.
32-bit x86 AES-NI:
- Compile the WOLFSSL_X86_BUILD AES-NI path in aes_asm.S / aes_xts_asm.S; gate
AES-GCM-AESNI to x86_64 (32-bit uses C GHASH + AES-NI blocks);
AES_ECB_decrypt_AESNI argument-offset fix.
configure.ac: enable -march=armv8-a+crypto for the arm32 armasm crypto path.
random.c / random.h: RDSEED entropy scale and retry tuning for x86 OE portability.
# Hard-error if explicitly enabled; otherwise force off and add NO_DH/NO_DSA.
6345
+
AS_IF([test "$enable_dh" = "yes"],
6346
+
[AC_MSG_ERROR([--enable-dh is not supported with --enable-fips=$FIPS_VERSION. Classic finite-field DH is out of scope for the FIPS 140-3 v7 PQ module. Use --enable-fips=v6 if you need DH support.])],
[AC_MSG_ERROR([--enable-dsa is not supported with --enable-fips=$FIPS_VERSION. DSA is retired by FIPS 186-5 and is out of scope for the FIPS 140-3 v7 PQ module. Use --enable-fips=v6 if you need DSA support.])],
$(info Note: disabling -fPIE on 32-bit x86 -- i386 -fPIE routes every local symbol through the GOT (R_386_GOTOFF), which the wolfCrypt PIE containerization forbids.)
145
+
endif
130
146
endif
131
147
132
148
ifdef NO_PIE_FLAG
@@ -217,6 +233,25 @@ $(obj)/wolfcrypt/src/wc_mlkem_asm.o: OBJECT_FILES_NON_STANDARD := y
sed -E -n 's/^[[:space:]]*[0-9]+: ([0-9a-fA-F]+)[[:space:]]+([0-9]+)[[:space:]]+OBJECT[[:space:]]+[A-Z]+[[:space:]]+[A-Z]+[[:space:]]+'"$${rodata_segment[0]}"'[[:space:]]+verifyCore$$/\1\n\2/p');\
363
379
if [[ $${#verifyCore_attrs[@]} != 2 ]]; then echo ' unexpected verifyCore_attrs.' >&2; exit 1; fi; \
364
-
if [[ "$${verifyCore_attrs[1]}"!="65" ]];thenecho" verifyCore has unexpected length $${verifyCore_attrs[1]}.">&2;exit 1;fi;\
380
+
if [[ "$${verifyCore_attrs[1]}"!="129" ]];thenecho" verifyCore has unexpected length $${verifyCore_attrs[1]}.">&2;exit 1;fi;\
0 commit comments