ElectionGuard is an open source software development kit (SDK) that makes voting more secure, transparent and accessible. Announced at the Build developer conference, ElectionGuard enables end-to-end verification of elections as well as support the publication of results from ballot comparison audits. The ElectionGuard SDK leverages homomorphic encryption to ensure that votes recorded by electronic systems of any type remain encrypted, secure, and secret. Results can be published online or made available to third-party organizations for secure validation, and allow individual voters to confirm their votes were correctly counted.
This library and all linked ElectionGuard projects, are licensed under the MIT license. There is no fee for using ElectionGuard.
ElectionGuard is always improving. To keep up with the latest, check our official site on GitHub Pages and our roadmap. For those looking to get started, we recommend the following repositories.
This repository is a living document to help everyone interact with ElectionGuard. The official ElectionGuard site is built using the /docs
folder and mkdocs with mkdocs-material. Ensure you have the Python 3.8 or newer installed and run make
to install the dependencies and start the site.
This repo uses pipenv for package and environment management. Disregard the requirements.txt
file as it will be removed in a subsequent release.
- Install packages
pipenv install
- Run
make build
command from within the virtualenv
pipenv run make build
- Serve the site
pipenv run make serve
An ElectionGuard Core implemented in C++ to support ballot encryption and all phases of the Guardian key and tally ceremonies, including creation of the election package and production of the election record.
[📁 Source][election-guard-core2] | [📦 Package][election-guard-core2-package] | [📝 Documentation][election-guard-core2-documentation]
We encourage the developer and security community to conduct research, report issues, and suggest improvements on this code base. However, unlike performance or feature bugs, please do not report security vulnerabilities in public Github comments. Each repository has a SECURITY file with instructions on responsibly reporting security vulnerabilities under Microsoft's CVD process.
Help defend democracy and contribute to the project.
We welcome discussions on our discussions page, feel free to check in and ask your questions and drop your suggestions regarding the specifications over there.
ElectionGuard would love for you to ask questions out in the open using Github Issues. If you really want to email the ElectionGuard team, reach out via the discussions page.
A huge thank you to those who helped to contribute to this project so far.