packages feed

pasta-curves-0.0.0.0: pasta-curves.cabal

cabal-version:         3.0
name:                  pasta-curves
version:               0.0.0.0
synopsis:              Provides the Pasta curves: Pallas, Vesta and their field elements Fp and Fq.
description:           Provides the Pasta curves: Pallas, Vesta and their field elements Fp and Fq. 
                       See the PastaCurves module below and/or the GitHub repository README.md for more details.
homepage:              https://github.com/nccgroup/pasta-curves
bug-reports:           https://github.com/nccgroup/pasta-curves/issues
license:               MIT
license-file:          LICENSE
author:                Eric Schorn
maintainer:            Eric Schorn <eric.schorn@nccgroup.com>
copyright:             2022 Eric Schorn
category:              Cryptography, Elliptic Curves
build-type:            Simple
extra-doc-files:       README.md
                       CHANGELOG.md
tested-with:           GHC == 8.6.5
                        || == 8.8.4
                        || == 8.10.7
                        || == 9.0.2
                        || == 9.2.2

source-repository head
  type:                git
  location:            https://github.com/nccgroup/pasta-curves.git

common common-options
  build-depends:       base >= 4.12 && < 4.17,
                       utf8-string >= 1 && < 1.0.3,
                       cryptonite >= 0.29 && < 0.31,
                       memory >= 0.16 && < 0.18,
                       bytestring >= 0.10 && < 0.11.4
  other-modules:       Curves, Fields, Pasta
  ghc-options:         -Weverything
                       -Wno-missing-import-lists
                       -Wno-unsafe
                       -Wno-all-missed-specialisations
  default-language:    Haskell2010

library
  import:              common-options
  hs-source-dirs:      src/Crypto/ECC
  exposed-modules:     PastaCurves

executable pasta-curves
  import:              common-options
  hs-source-dirs:      app, src/Crypto/ECC
  main-is:             Main.hs
  other-modules:       PastaCurves
  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N

test-suite pasta-curves-test
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test, src/Crypto/ECC
  main-is:             Spec.hs
  other-modules:       PastaCurves, TestFields, TestCurves
  build-depends:       tasty >= 1.4 && < 1.5,
                       tasty-hunit >= 0.10 && < 0.11,
                       tasty-quickcheck >= 0.10 && < 0.11
  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N

benchmark pasta-curves-benchmark
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      benchmark, src/Crypto/ECC
  main-is:             Main.hs
  other-modules:       PastaCurves
  build-depends:       criterion >= 1.5 && < 1.6
  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N