secp256k1

Pure Haskell Schnorr, ECDSA on the elliptic curve secp256k1 (docs.ppad.tech/secp256k1).
git clone git://git.ppad.tech/secp256k1.git
Log | Files | Refs | README | LICENSE

ppad-secp256k1.cabal (2340B)


      1 cabal-version:      3.0
      2 name:               ppad-secp256k1
      3 version:            0.5.3
      4 synopsis:           Schnorr signatures, ECDSA, and ECDH on the elliptic curve
      5                     secp256k1
      6 license:            MIT
      7 license-file:       LICENSE
      8 author:             Jared Tobin
      9 maintainer:         jared@ppad.tech
     10 category:           Cryptography
     11 build-type:         Simple
     12 tested-with:        GHC == { 9.10.3 }
     13 extra-doc-files:    CHANGELOG
     14 description:
     15   Pure BIP0340-style Schnorr signatures, deterministic RFC6979 ECDSA, and
     16   ECDH shared secret computation on the elliptic curve secp256k1.
     17 
     18 flag llvm
     19   description: Use GHC's LLVM backend.
     20   default:     False
     21   manual:      True
     22 
     23 source-repository head
     24   type:     git
     25   location: git.ppad.tech/secp256k1.git
     26 
     27 library
     28   default-language: Haskell2010
     29   hs-source-dirs:   lib
     30   ghc-options:
     31       -Wall
     32   if flag(llvm)
     33     ghc-options: -fllvm -O2
     34   exposed-modules:
     35       Crypto.Curve.Secp256k1
     36   build-depends:
     37       base >= 4.9 && < 5
     38     , bytestring >= 0.9 && < 0.13
     39     , ppad-hmac-drbg >= 0.2.1 && < 0.3
     40     , ppad-sha256 >= 0.3 && < 0.4
     41     , ppad-fixed >= 0.1.3 && < 0.2
     42     , primitive >= 0.8 && < 0.10
     43 
     44 test-suite secp256k1-tests
     45   type:                exitcode-stdio-1.0
     46   default-language:    Haskell2010
     47   hs-source-dirs:      test
     48   main-is:             Main.hs
     49   other-modules:
     50       BIP340
     51     , Noble
     52     , Wycheproof
     53     , WycheproofEcdh
     54 
     55   ghc-options:
     56     -rtsopts -Wall
     57 
     58   build-depends:
     59       aeson
     60     , attoparsec
     61     , base
     62     , bytestring
     63     , ppad-base16
     64     , ppad-fixed
     65     , ppad-secp256k1
     66     , ppad-sha256
     67     , tasty
     68     , tasty-hunit
     69     , text
     70 
     71 benchmark secp256k1-bench
     72   type:                exitcode-stdio-1.0
     73   default-language:    Haskell2010
     74   hs-source-dirs:      bench
     75   main-is:             Main.hs
     76 
     77   ghc-options:
     78     -rtsopts -O2 -Wall -fno-warn-orphans
     79 
     80   build-depends:
     81       base
     82     , bytestring
     83     , criterion
     84     , deepseq
     85     , ppad-base16
     86     , ppad-fixed
     87     , ppad-secp256k1
     88 
     89 benchmark secp256k1-weigh
     90   type:                exitcode-stdio-1.0
     91   default-language:    Haskell2010
     92   hs-source-dirs:      bench
     93   main-is:             Weight.hs
     94 
     95   ghc-options:
     96     -rtsopts -O2 -Wall -fno-warn-orphans
     97 
     98   build-depends:
     99       base
    100     , bytestring
    101     , deepseq
    102     , ppad-base16
    103     , ppad-fixed
    104     , ppad-secp256k1
    105     , weigh
    106