Giter Club home page Giter Club logo

mobile-voting-verifier's People

Contributors

akongstad avatar stender98 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

mobile-voting-verifier's Issues

SCREENS: Home from catalogue to nav bar

Describe the task

A clear and concise description of what you want to happen.

  • Create navigation bar for Home Screen
  • Use danish government application as base

Add screenshots or additional context

image
image

CRYPTOGRAPHY: Implement calculate_commitment.dart

Describe the task

  • Implement calculateChallengeCommitment()
  • Implement relevant helper methods (Algorithms from POLYAS 3.0 Verifiable E-Voting System - Version 1.3.0)

"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): ..."

Add screenshots or additional context

Refer to section Login request in second-device-spec.pdf

Store qr-parameters in object instead of map

Describe the task

Store qr-parameters in object instead of map

  • Create object for storing the parameters
  • Investigate if fromString factory method can be made
  • Change return type of qr-utility methods
  • Change type frontend scanParams objects

REPORT: Round off background section

Describe the task

A clear and concise description of what you want to happen.

  • Modify the section overview to fit the content
  • Perhaps create a sub conclusion?

USER TESTS: Find 10 people willing to participate in a user-study

Describe the task

Find 10 people willing to participate in a user-study
Step 1 - Timeframe the study itself:

  • How long will this take for participants
  • Will there be a reward and if yes what?

Step 2 - Find 10 participants(Amount may vary - But use empirical reasoning):
Mark when new participants have been found
(No date as of yet)

  • Person 1
  • Person 2
  • Person 3
  • Person 4
  • Person 5
  • Person 6
  • Person 7
  • Person 8
  • Person 9
  • Person 10

Step 3 - Create user study

  • Write Thomasz and get test instance and permission to use it
  • Have frontend ready for testing
  • Create interview guide/study guide

Step 4 - Publish time frame to participants

SCREENS: Implement display ballot screen

Describe the task

A clear and concise description of what you want to happen.

  • Implement screen to display ballot on succesful TOTP login
  • Screen should contain the clear text ballot

SCREENS - Add stepwise progress indication to the UI

Describe the task

Add stepwise progress indication to the UI.

  • Add bottom progress indicator on all steps to display verification progress
  • Add current task/step explanation to all pages. ( Remember to choose words carefully. Make the user understand why the steps are important and necessary).

[BUG]

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
´´´


UTILITIES: Implement validate_fingerprint.dart

Describe the task

  • Implement validateFingerprint()
  • Implement relevant helper methods

"The JSON value provide in secondDeviceParametersJson should match the pre-configured second
device parameter fingerprint. To verify this match..."

Add screenshots or additional context**

Refer to section Integrity of the second device public parameters in second-device-spec.pdf

REPORT: Finish related work/verifiability

Describe the task
Write related work/verifiability

  • Combine with or lead into e-to-e v systems section
  • Add additional context to cast-as-intended verifiability. Inspiration can be found in usability is not enough

UTILITIES: Implement validate_zkp.dart

Describe the task

  • Implement validateZKP()
  • Implement relevant helper methods

"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. ..."

Add screenshots or additional context**

Refer to section Validating the ZKP proof in second-device-spec.pdf

UTILITIES: Implement decrypt_qr.dart

Describe the task

  • Implement decryptQR()
  • Implement relevant helper methods

"The c parameter of the QR-code (see above) contains an encrypted payload. To decrypt it, apply
the following steps: ..."

Add screenshots or additional context**

Refer to section Decrypting the QR-code in second-device-spec.pdf

Test

Test using with issues

UTILITIES: Implement decode_vote.dart

Describe the task

  • Implement decodeVote
  • Implement relevant helper methods

"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. ..."

Add screenshots or additional context**

Refer to section Decoding and displaying the voter’s choice in second-device-spec.pdf

UTILITIES: Implement api_calls.dart

Describe the task

  • Implement electionDataRequest()
  • Implement loginRequest()
  • Implement challengeRequest()
  • Refactor code in screens to use these utilites instead of static calls to the repository API.

Add screenshots or additional context

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.

UTILITIES: Implement check_acknowledgement.dart

Describe the task

  • Implement checkAcknowledgement()
  • Implement relevant helper methods

"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. ..."

Add screenshots or additional context**

Refer to section Checking the acknowledgement in second-device-spec.pdf

NEW SECOND DEVICE REQS - Create infrastructure to (1) verify the digital signature on the downloadable receipt (2)

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.

UTILITIES: Implement api

Describe the task

A clear and concise description of what you want to happen.

  • [] Subtask...
  • [] Subtask...

Add screenshots or additional context**

SCREENS: Clean ballot audit screen

Describe the task

A clear and concise description of what you want to happen.

  • Find alternative to wall of text
  • Improve look and feel

Add screenshots or additional context

UTILITIES: Implement initial_message_deserialize.dart

Describe the task

  • Implement deserialize()

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: ..."

Add screenshots or additional context**

Refer to section Login response in second-device-spec.pdf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.