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 details)
Built Distribution
File details
Details for the file helios_lib-0.0.1.tar.gz
.
File metadata
- Download URL: helios_lib-0.0.1.tar.gz
- Upload date:
- Size: 46.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49ff561de69cc481c8a9e77c39dcf12a9a6e50c51168b8339786eba293053ab7 |
|
MD5 | 9ee33da2ec4d83d440544b5eff5b34f7 |
|
BLAKE2b-256 | 29433e72e64f493ba411b24ddf65bd24b6a94a3a8335d5e7bb46d4829c032b06 |
File details
Details for the file helios_lib-0.0.1-py2-none-any.whl
.
File metadata
- Download URL: helios_lib-0.0.1-py2-none-any.whl
- Upload date:
- Size: 55.7 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf76e601b896289f12d2dd26c7b888ea245d5287b125155d1db8b4a64df26514 |
|
MD5 | 18b8cefeb13e53f346df64c99e4535d4 |
|
BLAKE2b-256 | 22609a388845667e9d62a228c6c71584aa49de365dec17d67e6918abca28758a |