fips205-slhdsa-verified/verification
mrwulf a0d69f029b post-flip drill over the WOTS+ certificate: HELD; one rotted gate fixed
Full adversarial re-verification of the second-certificate window.
Everything of substance HELD:

- three-way fold fidelity EXACT: extracted wots_pk_from_sig_free_loop1
  body == wotsChainFold step == Rust Algorithm 8, operation-for-operation
  (chain_free with start=msg[i], steps=W-1-msg[i], slot tmp[i], addr
  i as u32; adrs1 threaded forward; i' increment mirrors the range step)
- axiom sweep over all 7 WotsSpec decls minimal: pure iterator lemmas =
  kernel-3; chain-touching = kernel-3 + oracle.f only
- button green fresh; non-vacuity PROVEN (a 1-index loop derives to
  exactly one address-set + one chain_free at index 0)
- worktree clean, heads synced, Proofs/ free of sorry/admit/axiom

DRILL CATCH (self-test rot): check-selftest.sh hard-coded the single-cert
CERTS/PROOFS strings, so after the second certificate landed its
replacements silently no-oped and Attack 2 (smuggled axiom) started
failing via the DEAD-FILE gate instead of the AXIOM gate — a self-test
no longer testing what it claims. Fixed: inject the evil entries after
each array's opening paren (robust to the lists growing), with asserts
that abort if check.sh's array shape ever changes. Re-run: both attacks
now rejected via their correct gates, selftest green.

Lesson for the record: a self-test that pattern-matches the audited
config rots as the config grows; anchor on structure (the array opener),
never on current contents.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 15:07:07 +02:00
..
gen/SlhVerify phase 2 step 1: de-plumb the u32 range-loop machinery 2026-07-22 23:54:03 +02:00
Proofs phase 2: SECOND CERTIFICATE — WOTS+ chain loop (Algorithm 8) proven 2026-07-23 14:48:39 +02:00
check-selftest.sh post-flip drill over the WOTS+ certificate: HELD; one rotted gate fixed 2026-07-23 15:07:07 +02:00
check.sh phase 2: SECOND CERTIFICATE — WOTS+ chain loop (Algorithm 8) proven 2026-07-23 14:48:39 +02:00
extract.sh audit catch 2: the oracle boundary is FIVE, not six 2026-07-22 23:02:40 +02:00
lean-guard SLH-DSA (FIPS 205) campaign skeleton: honest zero-certificate state 2026-07-22 21:00:57 +02:00