fips205-slhdsa-verified/verification
mrwulf 05c4412168 round 8: self-deriving harness pins, honest extraction guarantees, attestation basis
Third reviewer returned ATTEST-with-conditions at 1bc4f39. Its conditions are
committed verbatim as ATTESTATION-BASIS.md so the limits travel with the
artifact instead of living in a review document a consumer never sees. Condition
9 — that extract.sh's byte-identical regeneration has never been observed by any
party but the author — is the campaign's last open item, and the file records
that both reviewers are now blocked on it for different environmental reasons.

HARNESS PINS ARE NOW SELF-DERIVING. My round-7 fix hardcoded the required pin
names, which the reviewer correctly called a second thing to keep in sync, and
it supplied the boundary the harness does have: the executable bit. check.sh now
requires every executable file in verification/ to be pinned (itself excluded —
it cannot pin itself), plus Proofs/Audit.lean. A new harness script therefore
fails closed until pinned. Consequence, and the reviewer argued for it:
check-selftest.sh, drill.sh and extract.sh are now pinned too — the self-test is
the only artifact demonstrating the gates work, and its assertions have been
defective in four consecutive rounds, so weakening it should be a reviewable
rotation rather than an unnoticed edit.

THE EXTRACTION SCRIPT'S GUARANTEES ARE NOW STATED HONESTLY. The reviewer found a
tautological assert in it — comparing a dict against the comprehension that had
just built it — in the script written to fix a provenance-honesty defect. My
first repair (comparing kept[k] against t[k]) was tautological for the same
reason, which I confirmed by negative test. No check inside a transformer can
detect a corrupted input, because the transformer defines the output from that
input; that lesson is now recorded in the code. Both fake checks are gone and
the header and provenance text name what actually protects the result — the
pinned SOURCE_SHA256, the sk-must-be-present check, the group and test counts,
and verify mode — each of which I negative-tested.

Also: the self-test keeps its backups outside verification/ (cp -p preserves the
executable bit, so an in-tree backup would have looked like an unpinned harness
file and failed a run for an unrelated reason); the Phase-0 banner no longer
says a file 'differs' when an entry is simply absent; and attack 18's assertion
follows the renamed diagnostic and now requires both missing pins to be named.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 14:40:39 +02:00
..
gen/SlhVerify TypesExternal: correct a header that described a type the file no longer contains 2026-07-28 10:16:57 +02:00
Proofs review round 5: bind the policy, the specification bodies, and the harness 2026-07-27 22:57:46 +02:00
AUDIT-MANIFEST.txt review round 6: pin the auditor, purge every olean, pin gen/ as a set 2026-07-28 09:22:12 +02:00
check-selftest.sh round 8: self-deriving harness pins, honest extraction guarantees, attestation basis 2026-07-28 14:40:39 +02:00
check.sh round 8: self-deriving harness pins, honest extraction guarantees, attestation basis 2026-07-28 14:40:39 +02:00
drill.sh drill: the post-flight drill becomes a button (drill.sh) 2026-07-23 15:36:00 +02:00
extract.sh round 7: assert pin-map completeness (NEW-13), correct the count to 137, fix the regeneration-scope contradiction 2026-07-28 13:03:35 +02:00
lean-guard lean-guard: surface clamp/kill diagnostics on stderr (operator incident 2026-07-24) 2026-07-24 21:37:05 +02:00
PROVENANCE.json round 8: self-deriving harness pins, honest extraction guarantees, attestation basis 2026-07-28 14:40:39 +02:00
RECORDED-RUN.md round 8: self-deriving harness pins, honest extraction guarantees, attestation basis 2026-07-28 14:40:39 +02:00