Part of the V&V coverage initiative.
Problem
sigil has a Lean proof of Ed25519 correctness (lean/Ed25519.lean, 203 lines) and Verus annotations on some crypto primitives. The parser surfaces — varint decoding in src/lib/src/wasm_module/varint.rs, DSSE envelope parsing, signature byte-layout validation — are where parser edge cases live, and these are not covered by the Lean theory (which operates on mathematical values, not byte slices).
Acceptance
Notes
- varint is where 61 existing Kani uses already live — extend that pattern
- DSSE envelope format: treat untrusted input as
kani::any_slice_of_array_that_is_nonempty()
- Matches the SymCrypt/Aeneas pattern: mathematical proof in Lean + parser proofs in Kani
Part of the V&V coverage initiative.
Problem
sigil has a Lean proof of Ed25519 correctness (
lean/Ed25519.lean, 203 lines) and Verus annotations on some crypto primitives. The parser surfaces — varint decoding insrc/lib/src/wasm_module/varint.rs, DSSE envelope parsing, signature byte-layout validation — are where parser edge cases live, and these are not covered by the Lean theory (which operates on mathematical values, not byte slices).Acceptance
src/lib/tests/kani_<parser>.rsor similarrivet.yaml: link Kani harnesses to the Ed25519 Lean theorems (mathematical correctness) and DSSE spec requirements (parser correctness)cargo kaniNotes
kani::any_slice_of_array_that_is_nonempty()