* Support external_ballot_identifer as a string. Export/import ballots from encrypter
Add support for encrypter to export ballots to the file system. Import encrypter ballots into coordinator. Add a hashtable implementation that tracks ballot cast/spoil state against the external identifier (ballot_collection.c). Support loading ballots into a buffer.
Fix memory leaks in bignum.c, crypto.c, decryption/coordinator.c, decryption/trustee.c, voting/coordinator.c, voting/encrypter.c, etc.
Rework the API example to demonstrate the new external id and file system changes.
Improve debug logging. Add more api documentation. Modify MAX_BALLOT_PAYLOAD to 2000. Explicitly add // TODO: to track remaining work.
Note this commit is a work in progress and currently breaks the simple example.
* Remove Simple Example, add api doc stubs
Add stubs for the api documentation. Remove the simple example and use the api sample in the PR pipeline workflow
* Fix Merge Issue
* Verify malloc success
* Address PR Feedback
* Fix LGTM alerts
* Add soft delete of encrypter files
* Free CP Proof
* Fix windows Makefile
* test fix pr workflow on windows
* use secure api's
* explicitly compile release
* flush file write before read
* clean up makefile
* Document consumers resonsible for free
when calling an api that generates a filename as an out parameter, the caller is responsible for managing the memory of the out parameter when the call is successful
* Rename static coordinators in API to differentiate local vars
add an underscore prefix to static coordinator instance handles to differentiate vars until #62 is complete
* add new enum cases to the end on voting coordinator
* Add convenience logging
* Handle error cases on file access
use convenience logging
* use consistent file formatting when rebuilding tracker string
* optimize null check
* explicitly set tracker array positions to NULL on failure
* Reformat refactor Decryption_Coordinator_receive_share
* guard tallies_initialized when freeing resources
explicitly initialize num_tallies
* rename _encrypted_ballot_count
* don't return early
* do not fail soft delete if rename fails
* fix assignment
* adjust number of ballots to force a rebuild
Implement threshold decryption
Threshold decryption proofs generate and check
Changed to 256 bit subgroup used in the spec
Addressed decryption DoS
Removed asserts from proof checks
Co-Authored-By: Dragan Stosic <dragan.stosic@gmail.com>