name: hjugement-protocol -- PVP: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.0.0.20190511 category: Politic synopsis: A cryptographic protocol for the Majority Judgment. description: This work-in-progress library aims at implementing an online voting protocol named (Helios with Credentials) by its authors from the , the and the : , , , and Malika Izabachène. . (TODO) Actually, this protocol is adapted a little bit here to better support a better method of voting known as the . . * A large-public introduction (in french) to Helios-C is available here: . * A more scientific (yet understandable) introduction (in english) to Belenios (an implementation of Helios-C) is available here: . . The main properties of this protocol are: . * /fully correct/: the published result are proven to correspond to the (sum of) intended votes of the voters, while accounting for a malicious bulletin board (BB) (adding fake ballots) by requiring a registration authority (RA) (responsible for generating and sending voters' credentials). Assuming that the BB and the RA are not simultaneously dishonest. . * /verifiable/: each voter is able to check that: his\/her ballot did contribute to the outcome (/individual verifiability/), and that the tallying authorities did their job properly (/universal verifiability/). . * /private/: the identities of the voters who cast a vote are not publicly revealed. extra-doc-files: README.md license: GPL-3 license-file: COPYING stability: experimental author: Julien Moutinho maintainer: Julien Moutinho bug-reports: Julien Moutinho -- homepage: build-type: Simple cabal-version: 1.24 tested-with: GHC==8.4.4 extra-source-files: stack.yaml extra-tmp-files: Source-Repository head location: git://git.autogeree.net/hjugement type: git Library hs-source-dirs: src exposed-modules: Voting.Protocol Voting.Protocol.Arithmetic Voting.Protocol.Credential Voting.Protocol.Election Voting.Protocol.Trustees Voting.Protocol.Trustees.All Voting.Protocol.Utils default-language: Haskell2010 default-extensions: AllowAmbiguousTypes ConstraintKinds DefaultSignatures FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MonoLocalBinds MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude NoMonomorphismRestriction RecordWildCards ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators UndecidableInstances ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -fno-warn-tabs -- -fhide-source-paths build-depends: base >= 4.6 && < 5 , bytestring >= 0.10 , containers >= 0.5 , cryptonite >= 0.25 -- , fixed-vector >= 1.1 -- , hashable >= 1.2.6 , memory >= 0.14 -- , mmorph >= 1.1 -- , monad-classes >= 0.3 , deepseq >= 1.4 , random >= 1.1 -- , reflection >= 2.1 , text >= 1.2 , transformers >= 0.5 , unordered-containers >= 0.2.8 Test-Suite hjugement-protocol-test type: exitcode-stdio-1.0 hs-source-dirs: tests main-is: Main.hs other-modules: HUnit HUnit.Arithmetic HUnit.Credential HUnit.Election QuickCheck QuickCheck.Election QuickCheck.Trustee Utils default-language: Haskell2010 default-extensions: AllowAmbiguousTypes ConstraintKinds DefaultSignatures FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MonoLocalBinds MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude NoMonomorphismRestriction RecordWildCards ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators UndecidableInstances ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -fno-warn-tabs -- -fhide-source-paths build-depends: hjugement-protocol , base >= 4.6 && < 5 , containers >= 0.5 -- , hashable >= 1.2.6 , QuickCheck >= 2.11 -- , monad-classes >= 0.3 , random >= 1.1 -- , reflection >= 2.1 , tasty >= 0.11 , tasty-hunit >= 0.9 , tasty-quickcheck , text >= 1.2 , transformers >= 0.5 -- , unordered-containers >= 0.2.8 Benchmark hjugement-protocol-benchmark type: exitcode-stdio-1.0 hs-source-dirs: benchmarks main-is: Main.hs default-language: Haskell2010 other-modules: Election Utils default-extensions: AllowAmbiguousTypes ConstraintKinds DefaultSignatures FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MonoLocalBinds MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude NoMonomorphismRestriction RecordWildCards ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators UndecidableInstances ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -fno-warn-tabs build-depends: base >= 4.6 && < 5 , hjugement-protocol , containers >= 0.5 , criterion >= 1.4 , QuickCheck >= 2.11 , random >= 1.1 , text >= 1.2 , transformers >= 0.5