packages feed

hjugement-protocol-0.0.8.20191027: hjugement-protocol.cabal

name: hjugement-protocol
-- PVP:  +-+------- breaking API changes
--       | | +----- non-breaking API additions
--       | | | +--- code changes with no API change
version: 0.0.8.20191027
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.Arith
    Voting.Protocol.Credential
    Voting.Protocol.Election
    Voting.Protocol.FFC
    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
    , deepseq >= 1.4
    , QuickCheck >= 2.11
    , random >= 1.1
    , text >= 1.2
    , transformers >= 0.5