swisspost-evoting-go-poc/pkg/party
saymrwulf bc43c3d3aa Instrument real crypto ops to emit live LaTeX events
The running cryptography now narrates itself. Each headline operation emits a
trace.Event carrying its LaTeX notation plus the actual runtime values, the
instant it executes:

- Ed25519 signature on every inter-party message (envelope.Seal)
- X25519 ECDH key agreement for confidential card delivery (NewSecureChannel)
- ElGamal ballot encryption E1 = (g^r, pk^r·m) with the real r (castBallot)
- Fiat-Shamir challenge e = H(...) mod q (Schnorr proof)
- Bayer-Groth verifiable shuffle C' = {ReEnc_pk(C_π(i))} with N (mix-net)

Ceremony phases set trace phase/party context so events are attributed to the
acting stakeholder and phase. Instrumentation is behind the enabled-check, so
normal runs pay nothing.

Test: a full traced ceremony captures 184 live events across all five headline
kinds, each with non-empty LaTeX and live values, correctly phase/party-tagged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 14:06:08 +02:00
..
ceremony.go Voting cards: distributed return-code generation + confidential delivery 2026-07-06 15:15:38 +02:00
ceremony_test.go Add party layer scaffolding: PKI bootstrap + signed handshake 2026-07-06 15:07:31 +02:00
codes.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
codes_test.go Voting cards: distributed return-code generation + confidential delivery 2026-07-06 15:15:38 +02:00
e2e_test.go Tally + verification: full multi-party ceremony runs end-to-end 2026-07-06 15:23:56 +02:00
parties.go Voting cards: distributed return-code generation + confidential delivery 2026-07-06 15:15:38 +02:00
phases.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
returncode_extract.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
setup.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
setup_test.go Distributed key generation over signed transport + validated wire layer 2026-07-06 15:11:34 +02:00
state.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00
tally.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
trace_test.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
transcript.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00
verify.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
voting.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
voting_test.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
wire.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00