csecp256k1

Haskell FFI bindings to bitcoin-core/secp256k1 (docs.ppad.tech/csecp256k1).
git clone git://git.ppad.tech/csecp256k1.git
Log | Files | Refs | README | LICENSE

ppad-csecp256k1.cabal (2830B)


      1 cabal-version:      3.0
      2 name:               ppad-csecp256k1
      3 version:            0.2.0
      4 synopsis:           bitcoin-core/secp256k1 bindings
      5 license:            MIT
      6 license-file:       LICENSE
      7 author:             Jared Tobin
      8 maintainer:         jared@ppad.tech
      9 category:           Cryptography
     10 build-type:         Simple
     11 tested-with:        GHC == { 9.8.1, 9.6.4, 9.4.8 }
     12 extra-doc-files:    CHANGELOG
     13 description:
     14   Bindings to bitcoin-core/secp256k1, which provides digital
     15   signatures and other cryptographic primitives on the secp256k1
     16   elliptic curve.
     17 
     18   This library exposes a minimal subset of functionality, primarily
     19   supporting ECDSA/Schnorr signatures and ECDH secret computation.
     20 
     21 source-repository head
     22   type:     git
     23   location: git.ppad.tech/csecp256k1.git
     24 
     25 library
     26   default-language: Haskell2010
     27   hs-source-dirs:   lib
     28   ghc-options:
     29       -Wall
     30   exposed-modules:
     31       Crypto.Curve.Secp256k1
     32   build-depends:
     33       base >= 4.9 && < 5
     34     , bytestring >= 0.9 && < 0.13
     35     , secp256k1-sys
     36 
     37 test-suite csecp256k1-tests
     38   type:                exitcode-stdio-1.0
     39   default-language:    Haskell2010
     40   hs-source-dirs:      test
     41   main-is:             Main.hs
     42   other-modules:
     43       Wycheproof
     44     , BIP340
     45 
     46   ghc-options:
     47     -rtsopts -Wall
     48 
     49   build-depends:
     50       aeson
     51     , attoparsec
     52     , base
     53     , base16-bytestring
     54     , bytestring
     55     , ppad-csecp256k1
     56     , ppad-sha256
     57     , tasty
     58     , tasty-hunit
     59     , text
     60 
     61 benchmark csecp256k1-bench
     62   type:                exitcode-stdio-1.0
     63   default-language:    Haskell2010
     64   hs-source-dirs:      bench
     65   main-is:             Main.hs
     66 
     67   ghc-options:
     68     -rtsopts -O2 -Wall -fno-warn-orphans
     69 
     70   build-depends:
     71       base
     72     , bytestring
     73     , criterion
     74     , deepseq
     75     , ppad-csecp256k1
     76     , secp256k1-sys
     77 
     78 library secp256k1-sys
     79   default-language: Haskell2010
     80   hs-source-dirs:   secp256k1-sys/lib
     81 
     82   exposed-modules:
     83       Crypto.Curve.Secp256k1.Internal
     84 
     85   build-depends:
     86       base >= 4.9 && < 5
     87     , bytestring >= 0.9 && < 0.13
     88 
     89   ghc-options:
     90       -Wall
     91 
     92   include-dirs:
     93       secp256k1-sys/depend/secp256k1/include/
     94 
     95   includes:
     96       secp256k1.h
     97     , secp256k1_ecdh.h
     98     , secp256k1_extrakeys.h
     99     , secp256k1_schnorrsig.h
    100 
    101   c-sources:
    102       secp256k1-sys/depend/secp256k1/src/precomputed_ecmult_gen.c
    103     , secp256k1-sys/depend/secp256k1/src/precomputed_ecmult.c
    104     , secp256k1-sys/depend/secp256k1/src/secp256k1.c
    105 
    106   cc-options:
    107     -DENABLE_MODULE_ECDH
    108     -DENABLE_MODULE_EXTRAKEYS
    109     -DENABLE_MODULE_SCHNORRSIG
    110 
    111 test-suite secp256k1-sys-tests
    112   type:                exitcode-stdio-1.0
    113   default-language:    Haskell2010
    114   hs-source-dirs:      secp256k1-sys/test
    115   main-is:             Main.hs
    116 
    117   ghc-options:
    118     -rtsopts -Wall
    119 
    120   build-depends:
    121       base
    122     , bytestring
    123     , entropy
    124     , secp256k1-sys
    125     , tasty
    126     , tasty-hunit
    127