Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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))
Example #6
0
 def create_election():
     return HeliosElection()