Harden wolfSSL and wolfSSH validation

Enable validated ECC imports and X25519 all-zero rejection through
PUBLIC build policy. Tighten wolfSSH parser bounds, overflow handling,
and signature framing with guard-page and crypto vector contracts.
This commit is contained in:
2026-09-15 23:54:39 +02:00
parent c010e1a1d5
commit 4d3bb490c9
17 changed files with 1495 additions and 99 deletions
+5
View File
@@ -5,5 +5,10 @@ idf_component_get_property(_sak_wolf_target wolfssl__wolfssl COMPONENT_LIB)
if(NOT TARGET "${_sak_wolf_target}")
message(FATAL_ERROR "wolf crypto policy: missing wolfSSL component target")
endif()
# Existing upstream checks, not a vendor-source backport. PUBLIC keeps library
# and consumer settings consistent without changing the root build file.
target_compile_definitions("${_sak_wolf_target}" PUBLIC
WOLFSSL_VALIDATE_ECC_IMPORT
WOLFSSL_ECDHX_SHARED_NOT_ZERO)
target_compile_options("${_sak_wolf_target}" PUBLIC
"-include${CMAKE_CURRENT_LIST_DIR}/wolf_crypto_policy.h")
+16
View File
@@ -4,6 +4,22 @@
#include <wolfssl/wolfcrypt/settings.h>
/* PR10133 recommends this existing check for older releases. In 5.8.2 the
* software validator must not be replaced with a successful hardware stub. */
#if !defined(HAVE_ECC) || !defined(WOLFSSL_VALIDATE_ECC_IMPORT) || \
!defined(HAVE_ECC_CHECK_KEY)
#error "wolf crypto policy: ECC requires validated imports"
#endif
#if defined(NO_ECC_CHECK_PUBKEY_ORDER) || defined(WOLF_CRYPTO_CB_ONLY_ECC) || \
defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A) || \
defined(WOLFSSL_CRYPTOCELL) || defined(WOLFSSL_SILABS_SE_ACCEL) || \
defined(WOLFSSL_SE050) || defined(WOLFSSL_STM32_PKA)
#error "wolf crypto policy: review ECC validation backend before changing it"
#endif
#ifndef WOLFSSL_ECDHX_SHARED_NOT_ZERO
#error "wolf crypto policy: X25519 requires all-zero shared-secret rejection"
#endif
/* PR9275 selects small math on Xtensa to avoid compiler-introduced timing
* differences. Check resolved settings, not just command-line intentions.
* https://github.com/wolfSSL/wolfssl/pull/9275