Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
7da27bd
MC/DC: cover the 2026 RNG rework and aes.c argument-clause residuals
danielinux Sep 29, 2026
e796e98
tests: exclude the aes rework MC/DC test from selftest builds
danielinux Sep 29, 2026
2ee1700
MC/DC: decision-coverage drivers for SetSSL_CTX() and CheckVersion()
danielinux Sep 30, 2026
8f8ad6e
MC/DC: decision-coverage drivers for the src/ssl.c public-API guards
danielinux Sep 30, 2026
9c2407a
MC/DC: decision-coverage drivers for the ssl_api_crl_ocsp.c argument …
danielinux Sep 30, 2026
8b4d579
MC/DC: decision-coverage drivers for the ssl_api_cert.c argument guards
danielinux Sep 30, 2026
c7ae9ce
MC/DC: decision-coverage drivers for the x509.c argument guards
danielinux Sep 30, 2026
baeb0b8
MC/DC: decision-coverage drivers for the ssl_ech.c argument guards
danielinux Sep 30, 2026
c7ae98b
MC/DC: decision-coverage drivers for the ssl_certman.c argument guards
danielinux Oct 1, 2026
cdd9684
MC/DC: decision-coverage drivers for the ssl_sess.c argument guards
danielinux Oct 1, 2026
3a03daa
MC/DC: decision-coverage drivers for the ssl_load.c DH argument guards
danielinux Oct 1, 2026
9ac390c
MC/DC: close the aes GCM/CCM _ex PENDING arms; make the asn_keys
danielinux Oct 1, 2026
9f3a9af
MC/DC: close the random.c static-entry, flag-guard and
danielinux Oct 1, 2026
3cbc581
MC/DC: drive the RSA state-machine PENDING rows via the crypto-cb device
danielinux Oct 1, 2026
848e218
tests: cover the slhdsa MC/DC GAPS with white-box row drivers
danielinux Oct 1, 2026
8466aad
tests: cover the mldsa MC/DC GAPS with white-box row drivers
danielinux Oct 2, 2026
9740f38
tests: cover the dtls MC/DC GAPS with white-box row drivers
danielinux Oct 2, 2026
c7278ba
tests: cover the random.c MC/DC GAPS with white-box row drivers
danielinux Oct 2, 2026
f089a54
tests: gate internal-fn MC/DC tests on WOLFSSL_TEST_STATIC_BUILD
danielinux Oct 2, 2026
a12c0ec
tests: gate the MC/DC decision drivers on the library's feature gates
danielinux Oct 2, 2026
1483377
tests: close the wave-3 CI gaps and extend the api-guard whitelist
danielinux Oct 2, 2026
53f19a5
tests: gate the x509 driver on NO_RSA and surface whitebox build fail…
danielinux Oct 2, 2026
54cbe3c
tests: close the part-9 MC/DC gate regressions with decision drivers
danielinux Oct 7, 2026
c4beb0a
tests: gate the crypto-cb dispatch rows on the campaign build
danielinux Oct 7, 2026
b283f45
tests: fix the -Wshadow hit in the falcon decision driver
danielinux Oct 7, 2026
b2e32c8
tests: gate campaign test decls and helpers per feature config
danielinux Oct 7, 2026
0255723
tests: fix C90 decl placement and dangling ctx reuse in campaign drivers
danielinux Oct 7, 2026
521f824
tests: fix campaign CI failures
danielinux Oct 8, 2026
5faffb1
tests: fix remaining CI rows
danielinux Oct 8, 2026
b035cb4
tests: gate AES decision rows in old FIPS
danielinux Oct 8, 2026
4269e96
tests: register TLS white-box source
danielinux Oct 8, 2026
e3a35e0
tests: fix FIPS and PKCS7 checks
danielinux Oct 8, 2026
a67aa62
tests: initialize AES GCM input
danielinux Oct 8, 2026
a203735
Repair MC/DC drivers after master rebase
danielinux Nov 3, 2026
6aa31b9
Fix DH nonblocking test warning after master rebase
danielinux Nov 3, 2026
02d52bd
Guard MC/DC test error paths against failed setup
danielinux Nov 3, 2026
5dc5175
Guard coverage tests for optional features and allocations
danielinux Nov 3, 2026
13af826
Build DTLS cookie callback test without TLS 1.2
danielinux Nov 3, 2026
ef312c2
Free coverage test DER buffers and session references
danielinux Nov 3, 2026
7e2b929
Release context and certificate references in SetSSL_CTX coverage test
danielinux Nov 3, 2026
df3fe09
Fix source checks and remove dead test assignment
danielinux Nov 3, 2026
9f305c6
Guard MC/DC coverage tests against missing AES modes, EMS, and DRBG
danielinux Nov 4, 2026
ce9a67e
Fix PR review findings in coverage tests
danielinux Nov 4, 2026
c53a9b3
Construct ALPN whitebox fixture with owned storage
danielinux Nov 4, 2026
45595cd
Address later PR review findings in coverage drivers
danielinux Nov 4, 2026
9fac4d4
Free generated ML-DSA key before reuse in coverage test
danielinux Nov 4, 2026
e5a60ba
Address review feedback on coverage guards and DER fixtures
danielinux Nov 5, 2026
e9dffd7
Guard coverage drivers across feature configurations
danielinux Nov 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 5 additions & 42 deletions .wolfssl_known_macro_extras
Original file line number Diff line number Diff line change
Expand Up @@ -576,8 +576,6 @@ NO_TLSX_PSKKEM_PLAIN_ANNOUNCE
NO_VAES_SUPPORT
NO_VERIFY_OID
NO_WC_DHGENERATEPUBLIC
NO_WC_SHE_GETUID
NO_WC_SHE_IMPORT_M123
NO_WC_SHE_LOADKEY
NO_WC_SSIZE_TYPE
NO_WOLFSSL_ALLOC_ALIGN
Expand Down Expand Up @@ -848,11 +846,11 @@ WC_HASH_CUSTOM_MAX_DIGEST_SIZE
WC_HASH_CUSTOM_MIN_DIGEST_SIZE
WC_HAVE_FIPS_INDICATOR
WC_INIT_ERROR_WHEN_CONTENDED
WC_LINUXKM_FORCE_SVR_DYNAMIC_AUDITING
WC_LINUXKM_NO_ENTROPY_DAEMON
WC_LINUXKM_NO_SVR_DYNAMIC_AUDITING
WC_LINUXKM_NO_USE_HEAP_WRAPPERS
WC_LINUXKM_SPIN_IN_ATOMIC
WC_LINUXKM_FORCE_SVR_DYNAMIC_AUDITING
WC_MLDSA_NO_ASM
WC_MLKEM_KERNEL_ASM
WC_MPFS_ATHENA_NO_BASE_ADDR
Expand All @@ -863,8 +861,6 @@ WC_NO_RNG_SIMPLE
WC_NO_STATIC_ASSERT
WC_NO_VERBOSE_RNG
WC_PKCS11_FIND_WITH_ID_ONLY
WC_PKCS12_PBKDF_USING_MP_API
WC_PUF_HELPER_COMPACT
WC_PUF_SHA3
WC_RNG_BANK_NO_DAEMON_SUPPORT
WC_RNG_BANK_NO_DEFAULT_SUPPORT
Expand All @@ -891,7 +887,6 @@ WC_RSA_NO_FERMAT_CHECK
WC_RTL8735B_NO_DERIVE_CACHE
WC_RWLOCK_OPS_INLINE
WC_SHA2_SMALL_STACK
WC_SHE_SW_DEFAULT
WC_SKIP_INCLUDED_C_FILES
WC_SLHDSA_KERNEL_ASM
WC_SLHDSA_NO_ASM
Expand Down Expand Up @@ -937,12 +932,8 @@ WOLFSSL_ALTERNATIVE_DOWNGRADE
WOLFSSL_ALT_NAMES_NO_REV
WOLFSSL_APACHE_MYNEWT
WOLFSSL_ARM32_BUILD
WOLFSSL_ARM32_PRIVILEGE_MODE
WOLFSSL_ARMASM_NEON_NO_TABLE_LOOKUP
WOLFSSL_ARMASM_SHA3_NO_NEON
WOLFSSL_ARMASM_SHA512_NO_NEON
WOLFSSL_ARM_ARCH_NEON_64BIT
WOLFSSL_ASCON_UNROLL
WOLFSSL_ASN_EXTRA
WOLFSSL_ATECC508
WOLFSSL_ATECC508A_NOSOFTECC
Expand Down Expand Up @@ -983,18 +974,13 @@ WOLFSSL_CRL_ALLOW_MISSING_CDP
WOLFSSL_CRYPTOCELL
WOLFSSL_CRYPTOCELL_AES
WOLFSSL_DEBUG_TRACE_ERROR_CODES_SUPPORT
WOLFSSL_DILITHIUM_VERIFY_SMALLEST_MEM
WOLFSSL_DISABLE_EARLY_SANITY_CHECKS
WOLFSSL_DRBG_SHA256
WOLFSSL_DTLS13_ECHO_LEGACY_SESSION_ID
WOLFSSL_DTLS13_NO_HRR_ON_RESUME
WOLFSSL_DTLS_DISALLOW_FUTURE
WOLFSSL_DTLS_RECORDS_CAN_SPAN_DATAGRAMS
WOLFSSL_DTLS_RESEND_ONLY_TIMEOUT
WOLFSSL_DUMP_MEMIO_STREAM
WOLFSSL_DUP_CERTPOL
WOLFSSL_EARLY_DATA_NO_ANTI_REPLAY
WOLFSSL_ECC_BLIND_K
WOLFSSL_ECC_GEN_REJECT_SAMPLING
WOLFSSL_ECC_NO_SMALL_STACK
WOLFSSL_ECC_SIGALG_PARAMS_NULL_ALLOWED
Expand All @@ -1009,7 +995,6 @@ WOLFSSL_ESPWROOM32
WOLFSSL_EVP_PRINT
WOLFSSL_EXPORT_INT
WOLFSSL_EXPORT_SPC_SZ
WOLFSSL_EXTRA
WOLFSSL_FALCON_NO_NTT_DSP
WOLFSSL_FALCON_SIGN_STATS
WOLFSSL_FORCE_OCSP_NONCE_CHECK
Expand Down Expand Up @@ -1059,36 +1044,28 @@ WOLFSSL_MANUALLY_SELECT_DEVICE_CONFIG
WOLFSSL_MCDC_ALLOC_SWEEP
WOLFSSL_MDK5
WOLFSSL_MICROCHIP_AESGCM
WOLFSSL_MLDSA_ALLOW_WEAK_PREHASH
WOLFSSL_MLDSA_CHECK_INVNTT_BOUND
WOLFSSL_MLDSA_SIGN_SMALLEST_MEM
WOLFSSL_MLDSA_TEST_REJ_NTT_FAIL
WOLFSSL_MLDSA_VERIFY_ALLOW_MALLOC
WOLFSSL_MLDSA_VERIFY_PRECOMP_A
WOLFSSL_MLKEM_ASM_TEST
WOLFSSL_MLKEM_INVNTT_UNROLL
WOLFSSL_MLKEM_NO_MALLOC
WOLFSSL_MLKEM_NTT_UNROLL
WOLFSSL_ML_KEM_USE_OLD_IDS
WOLFSSL_MONT_RED_CT
WOLFSSL_MP_COND_COPY
WOLFSSL_MP_INVMOD_CONSTANT_TIME
WOLFSSL_MULTICIRCULATE_ALTNAMELIST
WOLFSSL_MX2_CONF_INCLUDE
WOLFSSL_NETX_DUO
WOLFSSL_NEW_PRIME_CHECK
WOLFSSL_NONBLOCK_OCSP
WOLFSSL_NOSHA3_384
WOLFSSL_NOT_WINDOWS_API
WOLFSSL_NO_AES_KEY_SET_CHECK
WOLFSSL_NO_BIO_ADDR_IN
Comment thread
danielinux marked this conversation as resolved.
Resolved
WOLFSSL_NO_CA_NAMES
WOLFSSL_NO_CHACHA20_POLY1305_FUSED
WOLFSSL_NO_CHACHA20_POLY1305_FUSED_IFMA
WOLFSSL_NO_CHACHA20_POLY1305_SHORT
WOLFSSL_NO_CHACHA20_POLY1305_SMALL_ASM
WOLFSSL_NO_CLIENT_CERT_ERROR
WOLFSSL_NO_COPY_CERT
WOLFSSL_NO_COPY_KEY
WOLFSSL_NO_CRL_DATE_CHECK
WOLFSSL_NO_CRL_NEXT_DATE
Expand All @@ -1098,10 +1075,7 @@ WOLFSSL_NO_DECODE_EXTRA
WOLFSSL_NO_DEL_HANDLE
WOLFSSL_NO_DER_TO_PEM
WOLFSSL_NO_DH186
WOLFSSL_NO_DILITHIUM_LEGACY_GATES
WOLFSSL_NO_DILITHIUM_LEGACY_NAMES
WOLFSSL_NO_DTLS_SIZE_CHECK
WOLFSSL_NO_ECC_SW
WOLFSSL_NO_ECDHX_SHARED_ZERO_CHECK
WOLFSSL_NO_ETM_ALERT
WOLFSSL_NO_FCHMOD
Expand All @@ -1119,7 +1093,6 @@ WOLFSSL_NO_LMS_SHAKE256_256
WOLFSSL_NO_OCSP_DATE_CHECK
WOLFSSL_NO_OCSP_OPTIONAL_CERTS
WOLFSSL_NO_RSA_KEY_CHECK
WOLFSSL_NO_RSA_SW
WOLFSSL_NO_SERVER_GROUPS_EXT
WOLFSSL_NO_SESSION_STATS
WOLFSSL_NO_SHA256_N_WAY
Expand All @@ -1130,7 +1103,6 @@ WOLFSSL_NO_SIGALG
WOLFSSL_NO_SIGNER_DER_CERT
WOLFSSL_NO_SOCKADDR_UN
WOLFSSL_NO_STRICT_CIPHER_SUITE
WOLFSSL_NO_TICKET_EXPIRE
WOLFSSL_NO_TRUSTED_CERTS_VERIFY
WOLFSSL_NO_WORD64_OPS
WOLFSSL_NO_XOR_OPS
Expand All @@ -1147,7 +1119,6 @@ WOLFSSL_NXP_ELE_NO_TRNG_CHECK
WOLFSSL_NXP_ELE_USE_DEVID
WOLFSSL_NXP_HWPUF
WOLFSSL_NXP_LPC55S6X
WOLFSSL_OCSP_SCREEN_RESPONDER
WOLFSSL_OLDTLS_AEAD_CIPHERSUITES
WOLFSSL_OLD_SET_CURVES_LIST
WOLFSSL_OLD_TIMINGPADVERIFY
Expand Down Expand Up @@ -1211,7 +1182,6 @@ WOLFSSL_SEC_QORIQ_NO_PKHA
WOLFSSL_SEC_QORIQ_NO_RSA
WOLFSSL_SEC_QORIQ_SWAP_REGS
WOLFSSL_SERVER_EXAMPLE
WOLFSSL_SESSION_CACHE_REF_WARNED
WOLFSSL_SETTINGS_FILE
WOLFSSL_SGX_CPUID_AVX512_VAES
WOLFSSL_SHA256_ALT_CH_MAJ
Expand Down Expand Up @@ -1240,10 +1210,6 @@ WOLFSSL_STSAFE_TAKES_SLOT
WOLFSSL_TELIT_M2MB
WOLFSSL_TEMPLATE_EXAMPLE
WOLFSSL_THREADED_CRYPT
WOLFSSL_TI_AM64X_R5
WOLFSSL_TI_AM64X_RNG_CTR_DRBG
WOLFSSL_TI_AM64X_NO_AES
WOLFSSL_TI_AM64X_NO_SHA
WOLFSSL_TICKET_DECRYPT_NO_CREATE
WOLFSSL_TICKET_ENC_AES128_GCM
WOLFSSL_TICKET_ENC_AES256_CBC
Expand All @@ -1253,11 +1219,13 @@ WOLFSSL_TICKET_ENC_CHACHA20_POLY1305
WOLFSSL_TICKET_ENC_HMAC_SHA384
WOLFSSL_TICKET_ENC_HMAC_SHA512
WOLFSSL_TINY_TLS13_NO_DEFAULT_CURVE
WOLFSSL_TI_AM64X_NO_AES
WOLFSSL_TI_AM64X_NO_SHA
WOLFSSL_TI_AM64X_R5
WOLFSSL_TI_AM64X_RNG_CTR_DRBG
WOLFSSL_TI_CURRTIME
WOLFSSL_TLS13_DRAFT
WOLFSSL_TLS13_IGNORE_AEAD_LIMITS
WOLFSSL_TLS13_IGNORE_PT_ALERT_ON_ENC
WOLFSSL_TLS13_NULL_CIPHER_IN_DEFAULT
WOLFSSL_TLS13_TICKET_BEFORE_FINISHED
WOLFSSL_TLS13_TICKET_CHECK_PSK_MODES
WOLFSSL_TLSX_PQC_MLKEM_STORE_PRIV_KEY
Expand All @@ -1278,7 +1246,6 @@ WOLFSSL_VALIDATE_MLDSA_KEYGEN
WOLFSSL_VALIDATE_MLKEM_KEYGEN
WOLFSSL_VALIDATE_SLHDSA_KEYGEN
WOLFSSL_VAULTIC_DEBUG
WOLFSSL_VERBOSE_LOGGING
WOLFSSL_VERSAL_GEN2_ASU_CCM_ALIGN_DECLINE
WOLFSSL_VERSAL_GEN2_ASU_CTR_WRAP_HW_FIXED
WOLFSSL_VERSAL_GEN2_ASU_DEBUG
Expand All @@ -1303,7 +1270,6 @@ WOLFSSL_X509_KEY_GEN
WOLFSSL_X509_PEM
WOLFSSL_X509_STORE_ALLOW_NON_CA_INTERMEDIATE
WOLFSSL_X509_STORE_CERTS
WOLFSSL_X509_TINY
WOLFSSL_X509_TRUSTED_CERTIFICATE_CALLBACK
WOLFSSL_X509_VERIFY_ONLY
WOLFSSL_XFREE_NO_NULLNESS_CHECK
Expand All @@ -1315,10 +1281,7 @@ WOLFSSL_ZEPHYR_MAIN_ARGS
WOLFSSL_nRF5x_SDK_15_2
WOLF_ALLOW_BUILTIN
WOLF_CONF_ASN_TIME
WOLF_CRYPTO_CB_ASYNC_POLL
WOLF_CRYPTO_CB_KEYGEN_SW_FALLBACK
WOLF_CRYPTO_CB_ONLY_SHA
WOLF_CRYPTO_CB_SHAKE_XOF
WOLF_CRYPTO_DEV
WOLF_NO_TRAILING_ENUM_COMMAS
WindowsCE
Expand Down
8 changes: 6 additions & 2 deletions src/ssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -3871,16 +3871,20 @@ int wolfssl_local_IsValidFQDN(const char* name, word32 nameSz)
int curLabelHasAlpha = 0;
int curLabelHasUnderscore = 0;

if (name == NULL || nameSz == 0)
if (name == NULL || nameSz == 0 || nameSz > 254)
return 0;

/* Bound before touching name[]: a valid name is at most 253 octets
* plus an optional trailing dot, so longer sizes are rejected here
* without reading past the caller's buffer.
*/
/* Strip a single optional trailing dot before measuring. "example.com."
* is the absolute form of the same FQDN.
*/
if (name[nameSz - 1] == '.')
--nameSz;

if (nameSz < 1 || nameSz > 253)
if (nameSz > 253)
return 0;

for (i = 0; i < nameSz; i++) {
Expand Down
7 changes: 7 additions & 0 deletions tests/api/check-api-guards.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@
'wolfSSL_CertManagerVerify': (['NO_FILESYSTEM'], []),
'wolfSSL_CertManagerLoadCRL': (['NO_FILESYSTEM'], []),
'wolfSSL_CertManagerLoadCRLFile': (['NO_FILESYSTEM'], []),
# src/ssl.c: implemented under HAVE_SECURE_RENEGOTIATION ||
# HAVE_SERVER_RENEGOTIATION_INFO; the substring match passes a call
# site guarded by the full disjunction.
'wolfSSL_SSL_renegotiate_pending': ([], ['HAVE_SECURE_RENEGOTIATION']),
# src/ssl_load.c: implemented under !NO_FILESYSTEM && !NO_CERTS
'wolfSSL_CTX_use_PrivateKey_file': (['NO_FILESYSTEM', 'NO_CERTS'], []),
'wolfSSL_CTX_use_certificate_file': (['NO_FILESYSTEM', 'NO_CERTS'], []),
}


Expand Down
Loading
Loading