* Add String ballot id. Add support for loading ballot files
refactor the testapp to reflect the current api sample in the C-Implementation
* Specify export path for tests
* remove commented out code
* fix pr feedback
* increment version
* ♻ Refactoring Election and Code Cleanup
Refactor Election to ElectionGuard Api
* 🔥 Delete Voting Works Models
Voting works models should be at a higher level instead of existing at low level since they are implementation specific
* 🚀 Upgrade Version Number for Nuget Push
* C# Wrapper side that implements the C API expected number of selected
* update C submodule to point to master
* Re-enable github workflow tests
* keep MacOS test disabled for now
* Implement C API entry point to create election; removed obsolete KeyCeremony logic; Fixes first step in unit tests (commented out rest of tests that need to be changed to support new payloads); Introduce test console app for easier debugging with C library
* Turn off tests since C library doesnt have updated release with API entry
* Implement freeing unmanaged bytes at end of method
* updated submodule; fix comments
* Refactor Create Election to static method; Renamed API to ElectionGuardAPI; Set up ElectionGuardConfig for shared persisted data; update test and test app; Add entry and return model for C API's EncryptBallot method
* Refactor/fix EncryptBallot api; Update test app; Clean up unmanaged memory
* Update VotingAndEncryption unit tests
* Fix Random ballot generator; Fix EncryptBallot array of selections to pass array of unsigned shorts since booleans aren't blittable types and the array is not a fixed size
* Implement RecordBallots API in C# Wrapper; Implement tests; Refactor/Cleanup obsolete implementations
* More refactoring - consolidating all exposed static wrapper methods in Election.cs, mark everything inside ElectionGuardAPI for internal use only
* Apply changes to get outputed filename from RecordBallot API
* Implement TallyVotes usage in C# wrapper and add/update tests
* Use byte instead of unsigned short for selections
* Apply commented out version of selections array with multple true values
An election manifest is a json file that defines the election. This was mimiced off existing examples. The file can then be used to determine how many options are necessary, the number of dummy votes, and the space available for writeins.
* Fix download script to parse latest release on mac
* log out version found
* sed may not be available in githubs mac/check grep
* check if at least curl works on mac
* Revert to first fix approach and echo out response
* Attempt with request using github token
* special build step copy for osx
* Fix copy source; comment out response during build; add token for other build env workflows
* More verbose outputs
* Apply same copy rules to unit test project
* Remove Before_Build steps in UnitTest proj since sdk proj will trigget the scripts; put back logging out the response json from github releases
* Fix auth header request; temp log out request
* recomment out json
* change package-workflow to use windows
* change windows built nuget push flow
* change back to to dotnet nuget command
* readd nuget as source
* Restore original package workflow for linux box
* redisable mac tests; added comment about github token; added auth header to powershel request script; remove osx copy logic from csproj until we can confirm process for mac
* reintroduce logging out response from github because mac is still failing
* Upload built/archived artifacts
* remove version suffix
* comment out windows test
* fix item reference type in csproj for native dlls; fix download-latest scripts to use git commands to get latest version tag
* output dotnetcore version on each build environment; revert csproj for native libs types
* verbos dontnet info
* put back packaging as separate step
* get intermediate artifacts
* try setting uppercase 🤞
* log out more info of build machines
* get diagnostic build log
* Final Fix for nuget packaging!
* revert to original nuget.config; revert nuget package names to include commit hash again
* fix windows
* update linux build to use env variable for logging
* fix command construction for linux, enable verbose logging for mac
* fix if expressions
* check mac environment
* fix workflow if conditionals
* attempt to fix workflow if again
* attempt to set env at different nesting level
* moved each env to global scope w/ disinct names since github's if feature doesn't honor scopes as it should
* test turn on verbose for mac
* another attempt to get mac only verbose logging
* attempt w/o conditional expression
* attempt type coercion value check
* attempt with strings?
* fix windows
* powershell for windows diagnostic logging
* set windows version back to false
* fix env equality check for powershell
* check enabling windows verbose logging one more time
* turn logging for windows off again
* Remove TODO
* ♻ Refactor uint to int and string for baseHash
uint is just not friendly for new developers. Switch to int where possible. Use basehash as string where possible. Easier for developers to work with.
* 🚧 Update Serializers to use base64
Use base64 for byte conversion as primary
* ✨ Create Election Constructor
Election constructor was made to quickly assemble all the details of an election with a single call for implementation into the api
* 🔧 Badge should be based on Package
* Fix small script bug when more than 1 release
* 🔧 Update to submodule to latest master
Update submodule to master instead of depending on lower version
* 🔥 Remove Release Workflow
* 🚧 Enable Windows Test
* 🔥 Remove GMP installs for speed
- GMP install on mac and windows should be unnecessary
* ♻ Clean up spacing in Project files
Visual studio cleanup on project files
* 🚧 Create Serialization for Public Key and Trustee State
Create serializers that can be used for manipulating the public key and private key aka trustee state
* 🚀 Implement Trustee State and Public Key Export
Public Key and Trustee are now exported and used within tests so that any user can access them.
* 🚧 Disable Windows Test
This is temporary disabled due to waiting on PR's in C-Implementation. This should be removed later.
* 🔧 Scripts to manage electionguard
- Script to get electionguard release
- Script to migrate electionguard local build
- Update projects
* ✅ Reduce Test
Tests were flooding due to repeated nunit test in KeyCeremony. Simplified to the simple election which is the only constant test. Temporarily ignored tests hingeing on release of file methods.
* 🚀 Update Pull Request Workflow
Simplify and remove blocks on tests
* Update Product to match Project
* 🔧 Package Workflow
Workflow to commit nuget package
* 📝Update ReadMe and Contributing file
- ReadMe now has badges and includes a link to contributing file for new OSS devs.
- release-workflow now exists
* ⚙ Add PR and Issue Templates
* 📝 Update Contributing Document
Contributing document needs to address how to build and proper PR submission.
* 👌 Resolve PR review
* 🔧 Update submodule to use exposed C file methods
* 🔒 Restrict Api's to internal
Api should not be reference directly outside project. Only the exposed classes and models should be used.
* ♻ Refactor Trustee State to State Management
Trustee State needs to be used across stages
* ✨ Add File Methods for Tally and Voting Result
Add methods and test to allow C file manipulation similar to simple election on linux
* 🚧 Add Decryption Wrapping
- Add Coordinator API
- Add Trustee API
- Add wrapped implementations
- Update Decryption Tests
- Create Test to walk through entire Key Ceremony
- Establish Return and Message structs to match existing key ceremony
- Establish Api calls to DLLImport C-Implementation
Initial Azure DevOps Pipeline created to build C Package and underlying C-Implementation
Windows build temporarily skipped and publish/package methods are
stubbed.
Start initial C Sharp project for Election Guard SDK
- Start with Key Ceremony Trustee example to showcase the intended path for the code.
- Setup testing framework
- Setup Projects and solution file