swisspost-evoting-go-poc/.claude/launch.json

12 lines
250 B
JSON
Raw Normal View History

Add `evote cockpit`: watch the cryptography execute as live typeset math The differentiator. A single self-contained browser page (no libraries, offline) renders each real cryptographic operation as typeset mathematics the instant it runs, with the actual runtime values: - E_1 = (γ, φ) = (g^r, pk^r·m), r ← Z_q (ElGamal ballot encryption) - e = H((p,q,g), y, c, h_aux) mod q (Fiat-Shamir challenge) - C' = { ReEnc_pk(C_π(i); ρ_i) } (Bayer-Groth verifiable shuffle) - σ ← Ed25519.Sign_sk(SHA256(envelope)) (transport signature) - s = a·B = b·A ∈ X25519, k = SHA256(…) (X25519 key agreement) Math is rendered via a focused LaTeX→native-MathML converter written for exactly the notation the instrumentation emits — so it works in any modern browser with zero dependencies and nothing to ship. Unknown tokens fall back to literal text, never crashing the view. `evote cockpit` starts an HTTP server; on page connect it runs one full multi- party ceremony, streaming every crypto event over SSE with configurable pacing (--delay) so a human can follow along. A stakeholder sidebar highlights the acting party; a phase timeline tracks setup→cards→voting→tally→verify; each op shows its live values as expandable, copyable chips. Verified in a real browser: all five operation kinds render correctly (96 sign, 36 challenge, 6 keyex, 2 encrypt, 5 shuffle in a 2-voter run), no console errors, ceremony completes and verifies. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:19:13 +00:00
{
"version": "0.0.1",
"configurations": [
{
"name": "cockpit",
"runtimeExecutable": "./evote",
"runtimeArgs": ["cockpit", "--port", "8092", "--voters", "2", "--options", "3", "--delay", "40"],
"port": 8092
}
]
}