poly1305

The Poly1305 message authentication code (docs.ppad.tech/poly1305).
git clone git://git.ppad.tech/poly1305.git
Log | Files | Refs | README | LICENSE

ppad-poly1305.cabal (2403B)


      1 cabal-version:      3.0
      2 name:               ppad-poly1305
      3 version:            0.4.2
      4 synopsis:           A fast Poly1305 MAC
      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   A fast Poly1305 message authentication code, per
     15   [RFC8439](https://datatracker.ietf.org/doc/html/rfc8439).
     16 
     17 flag llvm
     18   description: Use GHC's LLVM backend.
     19   default:     False
     20   manual:      True
     21 
     22 flag sanitize
     23   description: Build with AddressSanitizer and UndefinedBehaviorSanitizer.
     24   default:     False
     25   manual:      True
     26 
     27 source-repository head
     28   type:     git
     29   location: git.ppad.tech/poly1305.git
     30 
     31 library
     32   default-language: Haskell2010
     33   hs-source-dirs:   lib
     34   ghc-options:
     35       -Wall
     36   if flag(llvm)
     37     ghc-options: -fllvm -O2
     38   exposed-modules:
     39       Crypto.MAC.Poly1305
     40       Crypto.MAC.Poly1305.Arm
     41   build-depends:
     42       base >= 4.9 && < 5
     43     , bytestring >= 0.9 && < 0.13
     44     , ppad-fixed >= 0.1.3 && < 0.2
     45   c-sources:
     46       cbits/poly1305_arm.c
     47   if arch(aarch64)
     48     cc-options: -march=armv8-a
     49   if flag(sanitize)
     50     cc-options: -fsanitize=address,undefined -fno-omit-frame-pointer
     51     ghc-options: -optl=-fsanitize=address,undefined
     52 
     53 test-suite poly1305-tests
     54   type:                exitcode-stdio-1.0
     55   default-language:    Haskell2010
     56   hs-source-dirs:      test
     57   main-is:             Main.hs
     58 
     59   ghc-options:
     60     -rtsopts -Wall -O2
     61   if flag(sanitize)
     62     ghc-options: -optl=-fsanitize=address,undefined
     63 
     64   build-depends:
     65       base
     66     , bytestring
     67     , ppad-base16
     68     , ppad-poly1305
     69     , primitive
     70     , tasty
     71     , tasty-hunit
     72 
     73 benchmark poly1305-bench
     74   type:                exitcode-stdio-1.0
     75   default-language:    Haskell2010
     76   hs-source-dirs:      bench
     77   main-is:             Main.hs
     78 
     79   ghc-options:
     80     -rtsopts -O2 -Wall
     81 
     82   build-depends:
     83       base
     84     , bytestring
     85     , criterion
     86     , deepseq
     87     , ppad-base16
     88     , ppad-poly1305
     89 
     90 benchmark poly1305-weigh
     91   type:                exitcode-stdio-1.0
     92   default-language:    Haskell2010
     93   hs-source-dirs:      bench
     94   main-is:             Weight.hs
     95 
     96   ghc-options:
     97     -rtsopts -O2 -Wall
     98   if flag(llvm)
     99     ghc-options: -fllvm
    100 
    101   build-depends:
    102       base
    103     , bytestring
    104     , deepseq
    105     , ppad-poly1305
    106     , weigh
    107