]> Git — Sourcephile - majurity.git/blob - hjugement-protocol/hjugement-protocol.cabal
protocol: using ReaderT is not easier than Reifies
[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.20190513
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.Tally
71 Voting.Protocol.Trustee
72 Voting.Protocol.Trustee.Indispensable
73 Voting.Protocol.Utils
74 default-language: Haskell2010
75 default-extensions:
76 AllowAmbiguousTypes
77 ConstraintKinds
78 DefaultSignatures
79 FlexibleContexts
80 FlexibleInstances
81 GeneralizedNewtypeDeriving
82 LambdaCase
83 MonoLocalBinds
84 MultiParamTypeClasses
85 NamedFieldPuns
86 NoImplicitPrelude
87 NoMonomorphismRestriction
88 RecordWildCards
89 ScopedTypeVariables
90 TupleSections
91 TypeApplications
92 TypeFamilies
93 TypeOperators
94 ghc-options:
95 -Wall
96 -Wincomplete-uni-patterns
97 -Wincomplete-record-updates
98 -fno-warn-tabs
99 -- -fhide-source-paths
100 build-depends:
101 base >= 4.6 && < 5
102 , bytestring >= 0.10
103 , containers >= 0.5
104 , cryptonite >= 0.25
105 -- , fixed-vector >= 1.1
106 -- , hashable >= 1.2.6
107 , memory >= 0.14
108 -- , mmorph >= 1.1
109 -- , monad-classes >= 0.3
110 , deepseq >= 1.4
111 , random >= 1.1
112 -- , reflection >= 2.1
113 , text >= 1.2
114 , transformers >= 0.5
115 , unordered-containers >= 0.2.8
116
117 Test-Suite hjugement-protocol-test
118 type: exitcode-stdio-1.0
119 hs-source-dirs: tests
120 main-is: Main.hs
121 other-modules:
122 HUnit
123 HUnit.Arithmetic
124 HUnit.Credential
125 HUnit.Election
126 HUnit.Trustee
127 HUnit.Trustee.Indispensable
128 QuickCheck
129 QuickCheck.Election
130 QuickCheck.Trustee
131 Utils
132 default-language: Haskell2010
133 default-extensions:
134 AllowAmbiguousTypes
135 ConstraintKinds
136 DefaultSignatures
137 FlexibleContexts
138 FlexibleInstances
139 GeneralizedNewtypeDeriving
140 LambdaCase
141 MonoLocalBinds
142 MultiParamTypeClasses
143 NamedFieldPuns
144 NoImplicitPrelude
145 NoMonomorphismRestriction
146 RecordWildCards
147 ScopedTypeVariables
148 TupleSections
149 TypeApplications
150 TypeFamilies
151 TypeOperators
152 ghc-options:
153 -Wall
154 -Wincomplete-uni-patterns
155 -Wincomplete-record-updates
156 -fno-warn-tabs
157 -- -fhide-source-paths
158 build-depends:
159 hjugement-protocol
160 , base >= 4.6 && < 5
161 , containers >= 0.5
162 -- , hashable >= 1.2.6
163 , QuickCheck >= 2.11
164 -- , monad-classes >= 0.3
165 , random >= 1.1
166 -- , reflection >= 2.1
167 , tasty >= 0.11
168 , tasty-hunit >= 0.9
169 , tasty-quickcheck
170 , text >= 1.2
171 , transformers >= 0.5
172 -- , unordered-containers >= 0.2.8
173
174 Benchmark hjugement-protocol-benchmark
175 type: exitcode-stdio-1.0
176 hs-source-dirs: benchmarks
177 main-is: Main.hs
178 default-language: Haskell2010
179 other-modules:
180 Election
181 Utils
182 default-extensions:
183 AllowAmbiguousTypes
184 ConstraintKinds
185 DefaultSignatures
186 FlexibleContexts
187 FlexibleInstances
188 GeneralizedNewtypeDeriving
189 LambdaCase
190 MonoLocalBinds
191 MultiParamTypeClasses
192 NamedFieldPuns
193 NoImplicitPrelude
194 NoMonomorphismRestriction
195 RecordWildCards
196 ScopedTypeVariables
197 TupleSections
198 TypeApplications
199 TypeFamilies
200 TypeOperators
201 ghc-options:
202 -Wall
203 -Wincomplete-uni-patterns
204 -Wincomplete-record-updates
205 -fno-warn-tabs
206 build-depends:
207 base >= 4.6 && < 5
208 , hjugement-protocol
209 , containers >= 0.5
210 , criterion >= 1.4
211 , QuickCheck >= 2.11
212 , random >= 1.1
213 , text >= 1.2
214 , transformers >= 0.5