swisspost-evoting-go-poc/pkg/party
saymrwulf d2cfbf291f Ballot carries E2 + plaintext-equality proof, CC-verified
The voter now also submits E2 = Enc(vote, returnCodesPK[0]) and a plaintext-
equality proof that E2 and the ballot's slot 0 encrypt the SAME vote. Every CC
verifies this proof during ballot verification. This is the soundness link that
makes the return code cast-as-intended: a client that encrypts one vote for the
tally and a different one for the return-code channel is rejected, so the code
the CCs compute from E2 necessarily reflects the tallied vote.

- transcript: publish the combined return-codes public key.
- voter stores returnCodePK from the (confidential) card delivery.
- wire: plaintext-equality proof DTO.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:47:53 +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 Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +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 Tally + verification: full multi-party ceremony runs end-to-end 2026-07-06 15:23:56 +02:00
setup.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +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 Tally + verification: full multi-party ceremony runs end-to-end 2026-07-06 15:23:56 +02:00
transcript.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00
verify.go Tally + verification: full multi-party ceremony runs end-to-end 2026-07-06 15:23:56 +02:00
voting.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00
voting_test.go Tally + verification: full multi-party ceremony runs end-to-end 2026-07-06 15:23:56 +02:00
wire.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00