hjugement-protocol-0.0.0.20190519: hjugement-protocol.cabal
name: hjugement-protocol
-- PVP: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.0.0.20190519
category: Politic
synopsis: A cryptographic protocol for the Majority Judgment.
description:
This work-in-progress library aims at implementing an online voting protocol
named <https://eprint.iacr.org/2013/177.pdf Helios-C> (Helios with Credentials)
by its authors from the <https://www.cnrs.fr/ CNRS>,
the <http://www.loria.fr INRIA>
and the <https://www.univ-lorraine.fr/ Université de Lorraine>:
<http://www.loria.fr/~cortier/ Véronique Cortier>,
<https://dgalindo.es/ David Galindo>,
<http://www.loria.fr/~gaudry/ Pierrick Gaudry>,
<http://stephane.glondu.net/ Stéphane Glondu>
and Malika Izabachène.
.
* A large-public introduction (in french) to Helios-C is available here:
<https://members.loria.fr/VCortier/files/Papers/Bulletin1024-2016.pdf Bulletin de la société informatique de France – numéro 9, novembre 2016>.
* A more scientific (yet understandable) introduction (in english) to Belenios
(an implementation of Helios-C) is available here:
<https://hal.inria.fr/hal-02066930/document Belenios: a simple private and verifiable electronic voting system>.
.
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 <julm+hjugement@autogeree.net>
maintainer: Julien Moutinho <julm+hjugement@autogeree.net>
bug-reports: Julien Moutinho <julm+hjugement@autogeree.net>
-- 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.FFC
Voting.Protocol.Credential
Voting.Protocol.Election
Voting.Protocol.Tally
Voting.Protocol.Trustee
Voting.Protocol.Trustee.Indispensable
Voting.Protocol.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:
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 hjugement-protocol-test
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:
hjugement-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 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
StandaloneDeriving
TupleSections
TypeApplications
TypeFamilies
TypeOperators
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