Download VoteVerifier
Transcript
Note that one can create a Runner for other purposes too. For example we have the
ResultRunner, which is responsible for computing the results of an election.
We can make a small example of what the SystemSetupRunner effectively does:
@Override
public List<VerificationResult> run() {
//is Schnorr p prime
VerificationResult v1 = paramImpl.vrfPrime(Config.p,
VerificationType.SETUP_SCHNORR_P);
msgr.sendVrfMsg(v1);
partialResults.add(v1);
Thread.sleep(SLEEP_TIME);
//is Schnorr q prime
VerificationResult v2 = paramImpl.vrfPrime(Config.q,
VerificationType.SETUP_SCHNORR_Q);
msgr.sendVrfMsg(v2);
partialResults.add(v2);
Thread.sleep(SLEEP_TIME);
....
//verifiy EM certificate
VerificationResult v7 = certImpl.vrfEMCertificate();
msgr.sendVrfMsg(v7);
partialResults.add(v7);
return Collections.unmodifiableList(partialResults);
}
When the run() method of this Runner is called, we see that some checks of prime numbers
will be performed as well as a check of a certificate. We also see that it sends the result to the
GUI through the messenger (msgr variable).
The list of results that this method returns is mainly used for testing purposes.
Each of these runners corresponds to a phase of an election according to the UniVote
specification.
3.6
Verification
This class represents a Verification and it is the key point of the infrastructure. From here the
whole verification process starts for both the universal and individual verification.
VoteVerifier: Independent Verifier for UniVote Elections
27