cabal-version: 3.0 name: majurity-protocol maintainer: mailto:~julm/majurity@todo.hut.sourcephile.fr bug-reports: https://todo.hut.sourcephile.fr/~julm/majurity homepage: https://git.hut.sourcephile.fr/~julm/majurity author: Julien Moutinho copyright: Julien Moutinho license: AGPL-3.0-or-later -- PVP: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.0.10.20191104 stability: experimental 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. . * 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: extra-source-files: extra-tmp-files: build-type: Simple tested-with: GHC==8.10.4 source-repository head type: git location: https://git.hut.sourcephile.fr/~julm/majurity library hs-source-dirs: src exposed-modules: Voting.Protocol Voting.Protocol.Arithmetic Voting.Protocol.Credential Voting.Protocol.Cryptography Voting.Protocol.Election Voting.Protocol.FFC Voting.Protocol.Tally Voting.Protocol.Trustee Voting.Protocol.Trustee.Indispensable Voting.Protocol.Utils Voting.Protocol.Version default-language: Haskell2010 default-extensions: AllowAmbiguousTypes -- ConstraintKinds DefaultSignatures FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MonoLocalBinds MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude NoMonomorphismRestriction RecordWildCards ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -fno-warn-tabs -- -fhide-source-paths build-depends: base >= 4.6 && < 5 , aeson >= 1.3 , base64-bytestring >= 1.0 , binary >= 0.8 , 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 majurity-protocol-tests type: exitcode-stdio-1.0 hs-source-dirs: tests main-is: Main.hs other-modules: HUnit HUnit.FFC HUnit.Credential HUnit.Election HUnit.Trustee HUnit.Trustee.Indispensable 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 StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -fno-warn-tabs -- -fhide-source-paths build-depends: majurity-protocol , base >= 4.6 && < 5 , aeson >= 1.3 , 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 majurity-protocol-benchmarks 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 StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -fno-warn-tabs build-depends: base >= 4.6 && < 5 , majurity-protocol , aeson >= 1.3 , containers >= 0.5 , criterion >= 1.4 , deepseq >= 1.4 , QuickCheck >= 2.11 , random >= 1.1 , text >= 1.2 , transformers >= 0.5