fips205-slhdsa-verified/verification/driver-allowlist.txt

40 lines
3.1 KiB
Text
Raw Normal View History

Phase 3c: declaration coverage in both directions, and the accounting identity Completes the round-8 hardening of this repository. Round-8 review (Claude, register keys `drv-surface-no-cones` and `accounting-certifies-enumeration`). WHAT PHASE 3 DID NOT PIN. It proves each certificate's cone is exact and that no declaration in scope carries a disallowed axiom. It does not pin WHICH declarations exist: a new one that happens to be clean, and a silently vanished one, both pass it. inventory-allowlist.txt 265 rows — the audited corpus driver-allowlist.txt 35 rows — the audit INSTRUMENT's own surface both as INV|module|name|kind|CONE, diffed in BOTH directions by inventory_gate.sh, the same implementation the ed25519 repositories use, with a tag per surface. The instrument surface carries cones because the reviewer showed enumeration is not audit: a claim planted in an instrument is counted by an accounting identity and then examined by nothing, if its row carries no cone and no allowlist covers it. Here the instrument's 35 declarations are pinned exactly as the corpus's 265 are. INTERNAL NAMES ARE NO LONGER EXEMPT from the environment walk. They were skipped, which was harmless while nothing compared that walk against the kernel's view — and became a hole the moment something did: Phase 3b reads object files, which contain the compiler's auxiliaries. Exempting them would have left the accounting identity permanently short and forced the residual to be "explained" by a constant. That is the shape of the fudge term four-fork data refuted in the ed25519 repositories, and it is refused here before it can start. THE ACCOUNTING IDENTITY, as SET CONTAINMENT and never arithmetic: every constant the kernel holds must appear in one of the two walks. The kernel gate now emits KERNEL-NAME rows so the comparison names what is missing rather than reporting a count that has to be interpreted. kernel 300 = inventory 265 + instrument 35 residual: none Negative-tested, all three rejected by name and the tree restored to green: · a deleted INV row -> UNCLASSIFIED: INV|Proofs.ApexSpec|List.allM.eq_1|theorem| · a deleted DRV row -> UNCLASSIFIED: DRV|Proofs.Audit|SlhVerify.Audit.sortNames|def · a row with no declaration behind it -> STALE: …|fips205.ghost_that_does_not_exist|… Both allowlists join the pinned harness set: not executable, so the executable-bit rule cannot reach them, and an allowlist an attacker may rewrite pins nothing. fips205-slhdsa-verified now has the ed25519 repositories' gate set: 0 hygiene, 0d correspondence, 1 model, 2 proofs, 3 in-Lean audit, 3b kernel-side axiom gate, 3c coverage + accounting. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 15:34:00 +00:00
# driver-allowlist.txt — the AUDIT INSTRUMENT's own declaration surface,
# with cones, gated by the same implementation that gates the corpus.
# Round-8 review (Claude): enumeration is not audit. Rows carrying no cone,
# covered by no allowlist, are counted and then examined by nothing.
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1._sparseCasesOn_3|def|propext
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1._sparseCasesOn_6|def|propext
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_11|def|
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_13|def|propext
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_15|def|
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_17|def|
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_19|def|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_1|def|
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_21|def|
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_3|def|propext
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_6|def|propext
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1.match_9|def|
DRV|Proofs.Audit|SlhVerify.Audit._aux_Proofs_Audit___elabRules_SlhVerify_Audit_commandAuditCones_1|def|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit.allowedBoundary|def|
DRV|Proofs.Audit|SlhVerify.Audit.certModules|def|
DRV|Proofs.Audit|SlhVerify.Audit.closureOf._sparseCasesOn_1|def|propext
DRV|Proofs.Audit|SlhVerify.Audit.closureOf._unsafe_rec|def|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit.closureOf.match_1|def|propext
DRV|Proofs.Audit|SlhVerify.Audit.closureOf.match_4|def|
DRV|Proofs.Audit|SlhVerify.Audit.closureOf|opaque|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit.commandAuditCones|def|
DRV|Proofs.Audit|SlhVerify.Audit.isSpecConst.match_1|def|
DRV|Proofs.Audit|SlhVerify.Audit.isSpecConst|def|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit.kernel3|def|
DRV|Proofs.Audit|SlhVerify.Audit.kindOf.match_1|def|
DRV|Proofs.Audit|SlhVerify.Audit.kindOf|def|
DRV|Proofs.Audit|SlhVerify.Audit.manifest|def|
DRV|Proofs.Audit|SlhVerify.Audit.normWs|def|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit.oracleF|def|
DRV|Proofs.Audit|SlhVerify.Audit.oracleHMsg|def|
DRV|Proofs.Audit|SlhVerify.Audit.oracleH|def|
DRV|Proofs.Audit|SlhVerify.Audit.oracleTLen|def|
DRV|Proofs.Audit|SlhVerify.Audit.oracleTL|def|
DRV|Proofs.Audit|SlhVerify.Audit.ppAll|def|Classical.choice,Quot.sound,propext
DRV|Proofs.Audit|SlhVerify.Audit.sortNames|def|Classical.choice,Quot.sound,propext