Helios Server (Helios is an end-to-end verifiable voting system) as library
Project description
The Helios Lib
This is Helios-Server (Helios is an end-to-end verifiable voting system.) as library,
This helios_lib version is completely independent of Django.
Install
>>> pip install helios_lib
Test
>>> pytest --fulltrace -s helios_lib/
Example
from helios_lib.models import HeliosElection, HeliosVoter
from helios_lib.config import ELGAMAL_PARAMS
# Create election
helios_election = HeliosElection()
# Add trustee
trustee_default = helios_election.generate_helios_trustee(ELGAMAL_PARAMS)
helios_election.trustees.append(trustee_default)
# Add questions
question = HeliosElection.create_question(answers_count=5, minimum=0, maximum=2, result_type='relative')
helios_election.questions = [question]
# Add voters
voters_count = 4
helios_election.voters = [HeliosVoter() for _ in range(voters_count)]
# Freeze the election
helios_election.freeze()
# Cast votes, Encrypt votes of voters on the helios_lib side
helios_election.voters[0].vote = helios_election.encrypt_ballot('[[0,4]]')
helios_election.voters[1].vote = helios_election.encrypt_ballot('[[0]]')
helios_election.voters[2].vote = helios_election.encrypt_ballot('[[1]]')
helios_election.voters[3].vote = helios_election.encrypt_ballot('[[1,4]]')
# Verify votes of voters
for v in helios_election.voters:
v.vote.verify(helios_election)
# Tally election
helios_election.num_cast_votes = 4
helios_election.compute_tally(helios_election.voters)
helios_trustee = helios_election.get_helios_trustee()
helios_election.helios_trustee_decrypt(helios_trustee)
helios_election.combine_decryptions()
# Result of election
assert helios_election.result == [[2, 2, 0, 0, 2]]
For more complex example refer to tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
helios_lib-0.0.1.tar.gz
(46.9 kB
view hashes)
Built Distribution
helios_lib-0.0.1-py2-none-any.whl
(55.7 kB
view hashes)
Close
Hashes for helios_lib-0.0.1-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf76e601b896289f12d2dd26c7b888ea245d5287b125155d1db8b4a64df26514 |
|
MD5 | 18b8cefeb13e53f346df64c99e4535d4 |
|
BLAKE2b-256 | 22609a388845667e9d62a228c6c71584aa49de365dec17d67e6918abca28758a |