akongstad / mobile-voting-verifier Goto Github PK
View Code? Open in Web Editor NEWSecond device verification tool for implementations based on the Polyas system. Created for "E-Voting: Trust in Verification Systems" | BSc project ITU Copenhagen.
Second device verification tool for implementations based on the Polyas system. Created for "E-Voting: Trust in Verification Systems" | BSc project ITU Copenhagen.
Describe the task
"Fields voterId and nonce are taken from the QR-code (see above), while the password is provided
by the voter. The filed challengeCommitment should contain value 𝑐, computed as follows (see [1],
Appendix A.2, for the used cryptographic setting and notation): ..."
Refer to section Login request in second-device-spec.pdf
Store qr-parameters in object instead of map
Check the acknowledgement, that is the signature of the election system on the voter’s ballot
Describe the task
Finish report related work/usability section
A clear and concise description of what you want to happen.
Find 10 people willing to participate in a user-study
Step 1 - Timeframe the study itself:
Step 2 - Find 10 participants(Amount may vary - But use empirical reasoning):
Mark when new participants have been found
(No date as of yet)
Step 3 - Create user study
Step 4 - Publish time frame to participants
A clear and concise description of what you want to happen.
Add stepwise progress indication to the UI.
Describe the bug
Set up of IOS test build distribution via firebase is blocked.
This seems to be a cocapods issue linked to Xcode 14.3. See: https://github.com/CocoaPods/CocoaPods/pull/11828/files
Creating a fresh flutter project to create IPA file via Xcode does work however
Build ipa file fails with error:
PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/andreaskongstad/Library/Developer/Xcode/DerivedData/Runner-blngyeaiugaolabhmutyziigtmfh/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner.build/Script-229095910BCE0FB3EBD90533.sh (in target 'Runner' from project 'Runner')
cd /Users/andreaskongstad/IdeaProjects/mobile_voting_verifier/ios
/bin/sh -c /Users/andreaskongstad/Library/Developer/Xcode/DerivedData/Runner-blngyeaiugaolabhmutyziigtmfh/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner.build/Script-229095910BCE0FB3EBD90533.sh
mkdir -p /Users/andreaskongstad/Library/Developer/Xcode/DerivedData/Runner-blngyeaiugaolabhmutyziigtmfh/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/Runner.app/Frameworks
Symlinked...
rsync --delete -av --filter P .*.?????? --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "../../../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GTMSessionFetcher.framework" "/Users/andreaskongstad/Library/Developer/Xcode/DerivedData/Runner-blngyeaiugaolabhmutyziigtmfh/Build/Intermediates.noindex/ArchiveIntermediates/Runner/InstallationBuildProductsLocation/Applications/Runner.app/Frameworks"
building file list ... rsync: link_stat "/Users/andreaskongstad/IdeaProjects/mobile_voting_verifier/ios/../../../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GTMSessionFetcher.framework" failed: No such file or directory (2)
done
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-a4bc-863efbbaf80d/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
Command PhaseScriptExecution failed with a nonzero exit code
´´´
CLEANUP - Clean up ui v0.2 for first user tests
"The JSON value provide in secondDeviceParametersJson should match the pre-configured second
device parameter fingerprint. To verify this match..."
Refer to section Integrity of the second device public parameters in second-device-spec.pdf
Describe the task
Write related work/verifiability
"The ballot audit application, after having received the final message 𝑧, is expected to carry out the
following checks, in order to determine, if the zero-knowledge proof exchange should be accepted. ..."
Refer to section Validating the ZKP proof in second-device-spec.pdf
"The c parameter of the QR-code (see above) contains an encrypted payload. To decrypt it, apply
the following steps: ..."
Refer to section Decrypting the QR-code in second-device-spec.pdf
Change focus to actual live systems tested in production - Eg, estonia and Switzerland. Per Oksana's recommendation
Test using with issues
Create method signatures to map out infrastructure of unimplemented
CALCULATECOMMITMENT: Implement encoding into EC of plaintext numbers
"In the first step, the plaint-text voter’s choice needs to be extracted from the encrypted ballot with
the help of randomCoins, computed above. ..."
Refer to section Decoding and displaying the voter’s choice in second-device-spec.pdf
SCREENS: Render a form representing displaying the voters plaintext ballot in the last step
A clear and concise description of what you want to happen.
A clear and concise description of what you want to happen.
CRYPTOGRAPHY: Implement Algorithm 1. See appendix page 16
These static methods should be used in screens when making API calls. These methods should supply a http IOClient for the API calls and should take the necessary arguments to build the classes for the API paylods, that the API converts toJSON. They should return the appropriate objects recieved from the API calls.
A clear and concise description of what you want to happen.
"The ballot audit application should now check the acknowledgement, that is the signature of the
election system on the voter’s ballot. This signature confirms that the ballot is included in the ballot
box and can be then used to make sure that the ballot has been, as expected, included in the final
tally. ..."
Refer to section Checking the acknowledgement in second-device-spec.pdf
Describe the task
Voters can download ballot cast confirmations (receipts) from both the main voting device and the second device. The second device needs to both verify and generate receipts
The voters have the option to save ballot cast conirmations (receipts), containing fingerprints of their encrypted ballots
To support this process, a verification tool needs to be able to parse receipt and make the required consistency checks
A clear and concise description of what you want to happen.
ballot cast confirmations) are downloaded by the voters as simple PDF files.
Create infrastructure to (1) verify the digital signature on the downloadable receipt (2) check that a ballot entry with the provided fingerprint is included in the ballot-box
See Polyas specification 1.3 appendix B.2 for detailed steps.
Write background/POLYAS verifiable e-voting system
Perform data analysis and extract most insight from user testing
A clear and concise description of what you want to happen.
A clear and concise description of what you want to happen.
Add Json conversion to InitialMessage
Should return SecondDeviceInitialMsg that can be used in validate_fingerprint.dart and check_acknowledgement.dart
"The response contains further election metadata, the authentication token to be used in the succes�sive calls and the initial message, in JSON format. This initial message (after deserialization) is of
type SecondDeviceInitialMsg and looks as follows: ..."
Refer to section Login response in second-device-spec.pdf
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.