bolt8

Encrypted and authenticated transport, per BOLT #8 (docs.ppad.tech/bolt8).
git clone git://git.ppad.tech/bolt8.git
Log | Files | Refs | README | LICENSE

ppad-bolt8.cabal (2576B)


      1 cabal-version:      3.0
      2 name:               ppad-bolt8
      3 version:            0.1.1
      4 synopsis:           Encrypted and authenticated transport per BOLT #8
      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.10.3 }
     12 extra-doc-files:    CHANGELOG
     13 description:
     14   Encrypted and authenticated transport for the Lightning Network, per
     15   [BOLT #8](https://github.com/lightning/bolts/blob/master/08-transport.md):
     16   the Noise_XK_secp256k1_ChaChaPoly_SHA256 handshake and message
     17   transport with key rotation.
     18 
     19 source-repository head
     20   type:     git
     21   location: git.ppad.tech/bolt8.git
     22 
     23 flag llvm
     24   description: Use GHC's LLVM backend.
     25   default:     False
     26   manual:      True
     27 
     28 library
     29   default-language: Haskell2010
     30   hs-source-dirs:   lib
     31   ghc-options:
     32       -Wall
     33   if flag(llvm)
     34     ghc-options: -fllvm -O2
     35   -- LLVM's x86 backend rewrites a cmov whose operand is a load as a
     36   -- branch (its cmov converter), which would make the borrow-masked
     37   -- correction of ppad-fixed's sub_mod# (inlinable here) a branch on
     38   -- the borrow; keep the cmov.
     39   if flag(llvm) && arch(x86_64)
     40     ghc-options: -optlc=-x86-cmov-converter=false
     41   exposed-modules:
     42       Lightning.Protocol.BOLT8
     43   build-depends:
     44       base >= 4.9 && < 5
     45     , bytestring >= 0.9 && < 0.13
     46     , deepseq >= 1.4 && < 1.6
     47     , ppad-aead >= 0.3.7 && < 0.4
     48     , ppad-hkdf >= 0.3.2 && < 0.4
     49     , ppad-secp256k1 >= 0.5.9 && < 0.6
     50     , ppad-sha256 >= 0.3.2 && < 0.4
     51 
     52 test-suite bolt8-tests
     53   type:                exitcode-stdio-1.0
     54   default-language:    Haskell2010
     55   hs-source-dirs:      test
     56   main-is:             Main.hs
     57 
     58   ghc-options:
     59     -rtsopts -Wall
     60 
     61   build-depends:
     62       base
     63     , bytestring
     64     , ppad-aead
     65     , ppad-base16
     66     , ppad-bolt8
     67     , ppad-hkdf
     68     , ppad-sha256
     69     , tasty
     70     , tasty-hunit
     71     , tasty-quickcheck
     72 
     73 benchmark bolt8-bench
     74   type:                exitcode-stdio-1.0
     75   default-language:    Haskell2010
     76   hs-source-dirs:      bench
     77   main-is:             Main.hs
     78   other-modules:       Fixture
     79 
     80   ghc-options:
     81     -rtsopts -O2 -Wall
     82 
     83   build-depends:
     84       base
     85     , bytestring
     86     , criterion
     87     , ppad-bolt8
     88 
     89 benchmark bolt8-weigh
     90   type:                exitcode-stdio-1.0
     91   default-language:    Haskell2010
     92   hs-source-dirs:      bench
     93   main-is:             Weight.hs
     94   other-modules:       Fixture
     95 
     96   ghc-options:
     97     -rtsopts -O2 -Wall
     98 
     99   build-depends:
    100       base
    101     , bytestring
    102     , ppad-bolt8
    103     , weigh
    104