]> Git — Sourcephile - majurity.git/blob - hjugement-protocol/hjugement-protocol.cabal
protocol: add benchmarks
[majurity.git] / hjugement-protocol / hjugement-protocol.cabal
1 name: hjugement-protocol
2 -- PVP: +-+------- breaking API changes
3 -- | | +----- non-breaking API additions
4 -- | | | +--- code changes with no API change
5 version: 0.0.0.20190511
6 category: Politic
7 synopsis: A cryptographic protocol for the Majority Judgment.
8 description:
9 This work-in-progress library aims at implementing an online voting protocol
10 named <https://eprint.iacr.org/2013/177.pdf Helios-C> (Helios with Credentials)
11 by its authors from the <https://www.cnrs.fr/ CNRS>,
12 the <http://www.loria.fr INRIA>
13 and the <https://www.univ-lorraine.fr/ Université de Lorraine>:
14 <http://www.loria.fr/~cortier/ Véronique Cortier>,
15 <https://dgalindo.es/ David Galindo>,
16 <http://www.loria.fr/~gaudry/ Pierrick Gaudry>,
17 <http://stephane.glondu.net/ Stéphane Glondu>
18 and Malika Izabachène.
19 .
20 (TODO) Actually, this protocol is adapted a little bit here to better support
21 a better method of voting known as the <http://libgen.io/book/index.php?md5=BF67AA4298C1CE7633187546AA53E01D Majority Judgment>.
22 .
23 * A large-public introduction (in french) to Helios-C is available here:
24 <https://members.loria.fr/VCortier/files/Papers/Bulletin1024-2016.pdf Bulletin de la société informatique de France – numéro 9, novembre 2016>.
25 * A more scientific (yet understandable) introduction (in english) to Belenios
26 (an implementation of Helios-C) is available here:
27 <https://hal.inria.fr/hal-02066930/document Belenios: a simple private and verifiable electronic voting system>.
28 .
29 The main properties of this protocol are:
30 .
31 * /fully correct/: the published result are proven to correspond
32 to the (sum of) intended votes of the voters,
33 while accounting for a malicious bulletin board (BB) (adding fake ballots)
34 by requiring a registration authority (RA)
35 (responsible for generating and sending voters' credentials).
36 Assuming that the BB and the RA are not simultaneously dishonest.
37 .
38 * /verifiable/: each voter is able to check that:
39 his\/her ballot did contribute to the outcome (/individual verifiability/),
40 and that the tallying authorities did their job properly (/universal verifiability/).
41 .
42 * /private/: the identities of the voters who cast a vote are not publicly revealed.
43 extra-doc-files: README.md
44 license: GPL-3
45 license-file: COPYING
46 stability: experimental
47 author: Julien Moutinho <julm+hjugement@autogeree.net>
48 maintainer: Julien Moutinho <julm+hjugement@autogeree.net>
49 bug-reports: Julien Moutinho <julm+hjugement@autogeree.net>
50 -- homepage:
51
52 build-type: Simple
53 cabal-version: 1.24
54 tested-with: GHC==8.4.4
55 extra-source-files:
56 stack.yaml
57 extra-tmp-files:
58
59 Source-Repository head
60 location: git://git.autogeree.net/hjugement
61 type: git
62
63 Library
64 hs-source-dirs: src
65 exposed-modules:
66 Voting.Protocol
67 Voting.Protocol.Arithmetic
68 Voting.Protocol.Credential
69 Voting.Protocol.Election
70 Voting.Protocol.Utils
71 default-language: Haskell2010
72 default-extensions:
73 AllowAmbiguousTypes
74 ConstraintKinds
75 DefaultSignatures
76 FlexibleContexts
77 FlexibleInstances
78 GeneralizedNewtypeDeriving
79 LambdaCase
80 MonoLocalBinds
81 MultiParamTypeClasses
82 NamedFieldPuns
83 NoImplicitPrelude
84 NoMonomorphismRestriction
85 RecordWildCards
86 ScopedTypeVariables
87 TupleSections
88 TypeApplications
89 TypeFamilies
90 TypeOperators
91 UndecidableInstances
92 ghc-options:
93 -Wall
94 -Wincomplete-uni-patterns
95 -Wincomplete-record-updates
96 -fno-warn-tabs
97 -- -fhide-source-paths
98 build-depends:
99 base >= 4.6 && < 5
100 , bytestring >= 0.10
101 , containers >= 0.5
102 , cryptonite >= 0.25
103 -- , fixed-vector >= 1.1
104 -- , hashable >= 1.2.6
105 , memory >= 0.14
106 -- , mmorph >= 1.1
107 -- , monad-classes >= 0.3
108 , deepseq >= 1.4
109 , random >= 1.1
110 -- , reflection >= 2.1
111 , text >= 1.2
112 , transformers >= 0.5
113 , unordered-containers >= 0.2.8
114
115 Test-Suite hjugement-protocol-test
116 type: exitcode-stdio-1.0
117 hs-source-dirs: tests
118 main-is: Main.hs
119 other-modules:
120 HUnit
121 HUnit.Arithmetic
122 HUnit.Credential
123 HUnit.Election
124 QuickCheck
125 QuickCheck.Election
126 QuickCheck.Trustee
127 Utils
128 default-language: Haskell2010
129 default-extensions:
130 AllowAmbiguousTypes
131 ConstraintKinds
132 DefaultSignatures
133 FlexibleContexts
134 FlexibleInstances
135 GeneralizedNewtypeDeriving
136 LambdaCase
137 MonoLocalBinds
138 MultiParamTypeClasses
139 NamedFieldPuns
140 NoImplicitPrelude
141 NoMonomorphismRestriction
142 RecordWildCards
143 ScopedTypeVariables
144 TupleSections
145 TypeApplications
146 TypeFamilies
147 TypeOperators
148 UndecidableInstances
149 ghc-options:
150 -Wall
151 -Wincomplete-uni-patterns
152 -Wincomplete-record-updates
153 -fno-warn-tabs
154 -- -fhide-source-paths
155 build-depends:
156 hjugement-protocol
157 , base >= 4.6 && < 5
158 , containers >= 0.5
159 -- , hashable >= 1.2.6
160 , QuickCheck >= 2.11
161 -- , monad-classes >= 0.3
162 , random >= 1.1
163 -- , reflection >= 2.1
164 , tasty >= 0.11
165 , tasty-hunit >= 0.9
166 , tasty-quickcheck
167 , text >= 1.2
168 , transformers >= 0.5
169 -- , unordered-containers >= 0.2.8
170
171 Benchmark hjugement-protocol-benchmark
172 type: exitcode-stdio-1.0
173 hs-source-dirs: benchmarks
174 main-is: Main.hs
175 default-language: Haskell2010
176 other-modules:
177 Election
178 Utils
179 default-extensions:
180 AllowAmbiguousTypes
181 ConstraintKinds
182 DefaultSignatures
183 FlexibleContexts
184 FlexibleInstances
185 GeneralizedNewtypeDeriving
186 LambdaCase
187 MonoLocalBinds
188 MultiParamTypeClasses
189 NamedFieldPuns
190 NoImplicitPrelude
191 NoMonomorphismRestriction
192 RecordWildCards
193 ScopedTypeVariables
194 TupleSections
195 TypeApplications
196 TypeFamilies
197 TypeOperators
198 UndecidableInstances
199 ghc-options:
200 -Wall
201 -Wincomplete-uni-patterns
202 -Wincomplete-record-updates
203 -fno-warn-tabs
204 build-depends:
205 base >= 4.6 && < 5
206 , hjugement-protocol
207 , containers >= 0.5
208 , criterion >= 1.4
209 , QuickCheck >= 2.11
210 , random >= 1.1
211 , text >= 1.2
212 , transformers >= 0.5