mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-10-24 04:09:07 +03:00
Both session caches walk their row backwards from the most recently used
entry, and both start the walk with
idx = row->nextIdx - 1;
if (idx < 0 || idx >= SESSIONS_PER_ROW)
nextIdx is the ring's insertion point, so idx lands in [-1, PER_ROW-1] and the
first operand is true exactly when nextIdx is 0 -- an untouched row, or one
that has just wrapped. Whether any test produced that state was decided by
what an earlier test in the same binary had left in the cache, not by anything
the test itself did. That is not hypothetical: ssl_sess.c measured 32/120 on
2026-09-05 and 33/120 on 2026-09-06 from identical wolfssl and campaign
commits on the same host, and 33 is what this now reaches every run.
The white-box empties the rows itself and looks up against them, then repeats
each lookup with nextIdx in the middle of the ring, because both halves have
to run in one binary or the operand has no independence pair -- a first
attempt drove only the true side and scored zero.
Two details cost a measurement each and are worth writing down: ClientCache is
CLIENT_SESSION_ROWS long while SessionCache is SESSION_ROWS, so zeroing the
first with the second's bound leaves the row the id hashes to untouched; and
wolfSSL_GetSessionClient returns before the ring walk when the context has the
cache switched off, which makes every vector a silent no-op.
ssl_sess.c 32/120 -> 33/120. The second operand of each guard is excluded
rather than chased: nextIdx is bounded by the ring at every write, so
idx >= PER_ROW cannot occur and has no pair in any configuration.
114 lines
2.8 KiB
Plaintext
114 lines
2.8 KiB
Plaintext
test_aes_whitebox
|
|
test_asn_cert_whitebox
|
|
test_asn_ext_whitebox
|
|
test_asn_fault_whitebox
|
|
test_asn_keys_whitebox
|
|
test_asn_revocation_whitebox
|
|
test_asn_whitebox
|
|
test_blake2b_whitebox
|
|
test_blake2s_whitebox
|
|
test_chacha20_poly1305_whitebox
|
|
test_chacha_whitebox
|
|
test_cmac_whitebox
|
|
test_crl_whitebox
|
|
test_cryptocb_whitebox
|
|
test_curve25519_whitebox
|
|
test_dsa_fault_whitebox
|
|
test_dtls13_role_whitebox
|
|
test_dtls_whitebox
|
|
test_ecc_fault_whitebox
|
|
test_ecc_whitebox
|
|
test_eccsi_fault_whitebox
|
|
test_eccsi_whitebox
|
|
test_ed25519_hash_fault_whitebox
|
|
test_ed25519_whitebox
|
|
test_ed448_hash_fault_whitebox
|
|
test_ed448_whitebox
|
|
test_falcon_whitebox
|
|
test_frodokem_fault_whitebox
|
|
test_frodokem_mat_fault_whitebox
|
|
test_frodokem_mat_hash_fault_whitebox
|
|
test_hpke_fault_whitebox
|
|
test_hpke_whitebox
|
|
test_integer_fault_whitebox
|
|
test_integer_whitebox
|
|
test_internal_certerror_whitebox
|
|
test_internal_clienthello_whitebox
|
|
test_internal_cryptocb_whitebox
|
|
test_internal_dhskehash_whitebox
|
|
test_internal_domain_whitebox
|
|
test_internal_eddsa_whitebox
|
|
test_internal_nullguard_whitebox
|
|
test_internal_peerkey_whitebox
|
|
test_internal_record_whitebox
|
|
test_internal_revocation_whitebox
|
|
test_internal_sanity_whitebox
|
|
test_internal_status_whitebox
|
|
test_internal_suites_whitebox
|
|
test_kdf_hash_fault_whitebox
|
|
test_kdf_whitebox
|
|
test_keys_whitebox
|
|
test_lms_bds_whitebox
|
|
test_lms_fault_whitebox
|
|
test_lms_hash_fault_whitebox
|
|
test_logging_globalq_whitebox
|
|
test_logging_whitebox
|
|
test_memory_whitebox
|
|
test_mldsa_fault_whitebox
|
|
test_mldsa_hash_fault_whitebox
|
|
test_mlkem_fault_whitebox
|
|
test_mlkem_poly_hash_fault_whitebox
|
|
test_ocsp_whitebox
|
|
test_pkcs12_fault_whitebox
|
|
test_pkcs12_parse_whitebox
|
|
test_pkcs12_whitebox
|
|
test_pkcs7_arg_whitebox
|
|
test_pkcs7_craft_whitebox
|
|
test_pkcs7_decode_whitebox
|
|
test_pkcs7_lever_whitebox
|
|
test_pkcs7_mutate_whitebox
|
|
test_poly1305_whitebox
|
|
test_puf_gf_whitebox
|
|
test_pwdbased_whitebox
|
|
test_random_fault_whitebox
|
|
test_random_whitebox
|
|
test_rsa_fault_whitebox
|
|
test_rsa_whitebox
|
|
test_sakke_fault_whitebox
|
|
test_sakke_whitebox
|
|
test_sha256_whitebox
|
|
test_sha3_whitebox
|
|
test_sha512_whitebox
|
|
test_she_whitebox
|
|
test_signature_whitebox
|
|
test_slhdsa_hash_fault_whitebox
|
|
test_slhdsa_whitebox
|
|
test_sp_arm32_fault_whitebox
|
|
test_sp_arm64_fault_whitebox
|
|
test_sp_armthumb_fault_whitebox
|
|
test_sp_c32_fault_whitebox
|
|
test_sp_c64_fault_whitebox
|
|
test_sp_cortexm_fault_whitebox
|
|
test_sp_int_fault_whitebox
|
|
test_sp_int_whitebox
|
|
test_sp_x86_64_fault_whitebox
|
|
test_sp_x86_64_whitebox
|
|
test_srp_whitebox
|
|
test_ssl_certman_whitebox
|
|
test_ssl_sess_whitebox
|
|
test_tfm_fault_whitebox
|
|
test_tls13_null_whitebox
|
|
test_tls13_whitebox
|
|
test_tsp_fault_whitebox
|
|
test_tsp_whitebox
|
|
test_wc_encrypt_whitebox
|
|
test_wc_lms_impl_whitebox
|
|
test_wc_mlkem_poly_whitebox
|
|
test_wc_port_whitebox
|
|
test_wc_xmss_impl_whitebox
|
|
test_wolfentropy_whitebox
|
|
test_wolfio_whitebox
|
|
test_wolfmath_whitebox
|
|
test_xmss_fault_whitebox
|
|
test_xmss_hash_fault_whitebox
|