def setup_election(): e = TestHeliosElection.create_election() trustee_default = TestHeliosElection.create_default_trustee(e) e.trustees.append(trustee_default) q1 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=1, result_type='relative') q2 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=3, result_type='relative') q3 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=1, result_type='absolute') q4 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=3, result_type='absolute') e.questions = [q1, q2, q3, q4] e.voters = TestElectionResults.create_voters() e.freeze() TestElectionResults.setup_voters(e) e.num_cast_votes = 4 return e
def setup_election(): e = TestHeliosElection.create_election() trustee_default = TestHeliosElection.create_default_trustee(e) e.trustees.append(trustee_default) q1 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative') q2 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative') e.questions = [q1, q2] e.voters = TestHeliosElection.create_voters() e.freeze() TestHeliosElectionMultiQuestion.setup_voters(e) e.num_cast_votes = 4 e.compute_tally(e.voters) helios_trustee = e.get_helios_trustee() e.helios_trustee_decrypt(helios_trustee) e.combine_decryptions() return e
def setup_election(): e = TestHeliosElection.create_election() trustee_default = TestHeliosElection.create_default_trustee(e) trustee_extra_one = HeliosTrustee() trustee_extra_one.set_public_key_from_json( TestHeliosElectionMultiTrustee.public_key) e.trustees.append(trustee_default) e.trustees.append(trustee_extra_one) q1 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative') q2 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative') e.questions = [q1, q2] e.voters = TestHeliosElectionMultiQuestionMultiTrustee.create_voters() e.freeze() TestHeliosElectionMultiQuestionMultiTrustee.setup_voters(e) e.num_cast_votes = 4 # e.compute_tally(e.voters) tally = e.encrypted_tally # public_key = EGPublicKey( **TestHeliosElectionMultiTrustee.secret_key['public_key']) secret_key = EGSecretKey( pk=public_key, x=TestHeliosElectionMultiTrustee.secret_key['x']) trustee_extra_one.secret_key = secret_key # It's same as calling `e.helios_trustee_decrypt(e.get_helios_trustee())` trustee_default.decryption_factors, trustee_default.decryption_proofs = tally.decryption_factors_and_proofs( trustee_default.secret_key) trustee_extra_one.decryption_factors, trustee_extra_one.decryption_proofs = tally.decryption_factors_and_proofs( trustee_extra_one.secret_key) e.combine_decryptions() return e
def setup_election(): e = TestHeliosElection.create_election() trustee_default = TestHeliosElection.create_default_trustee(e) e.trustees.append(trustee_default) q1 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative') q2 = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative') e.questions = [q1, q2] e.voters = TestHeliosElection.create_voters() e.freeze() TestHeliosElectionMultiQuestion.setup_voters(e) e.num_cast_votes = 4 num_tallied = 0 e.compute_tally(e.voters[:2]) encrypted_tally_01 = e.encrypted_tally.tally e.compute_tally(e.voters[2:]) num_tallied += e.encrypted_tally.num_tallied encrypted_tally_02 = e.encrypted_tally.tally tallies = [encrypted_tally_01, encrypted_tally_02] num_tallied += e.encrypted_tally.num_tallied e.encrypted_tally = Tally.aggregate_tallies(e, tallies) e.encrypted_tally.num_tallied = num_tallied helios_trustee = e.get_helios_trustee() e.helios_trustee_decrypt(helios_trustee) e.combine_decryptions() return e
def object_hook(self, obj): return obj class Example: d = None e = None class Sample: a = None b = None c = None def __init__(self): self.a = 1 self.c = Example() self.c.d = 1 helios_election = HeliosElection() helios_trustee = helios_election.generate_helios_trustee(ELGAMAL_PARAMS) sample = Sample() x = json.dumps(helios_trustee, cls=HeliosTrusteeSerializer) # print('x', type(x)) y = json.loads(x, cls=HeliosTrusteeDeSerializer) # print((y))
def create_election(): return HeliosElection()