sha512

Pure Haskell SHA-512, HMAC-SHA512 (docs.ppad.tech/sha512).
git clone git://git.ppad.tech/sha512.git
Log | Files | Refs | README | LICENSE

ppad-sha512.cabal (2547B)


      1 cabal-version:      3.0
      2 name:               ppad-sha512
      3 version:            0.2.2
      4 synopsis:           The SHA-512 and HMAC-SHA512 algorithms
      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 pure implementation of SHA-512 and HMAC-SHA512 on strict and lazy
     15   ByteStrings, as specified by RFC's 6234 and 2104.
     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/sha512.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.Hash.SHA512
     40       Crypto.Hash.SHA512.Arm
     41       Crypto.Hash.SHA512.Internal
     42       Crypto.Hash.SHA512.Lazy
     43   build-depends:
     44       base >= 4.9 && < 5
     45     , bytestring >= 0.9 && < 0.13
     46   c-sources:
     47       cbits/sha512_arm.c
     48   if arch(aarch64)
     49     cc-options: -march=armv8.2-a+sha3
     50   if flag(sanitize)
     51     cc-options: -fsanitize=address,undefined -fno-omit-frame-pointer
     52     ghc-options: -optl=-fsanitize=address,undefined
     53 
     54 test-suite sha512-tests
     55   type:                exitcode-stdio-1.0
     56   default-language:    Haskell2010
     57   hs-source-dirs:      test
     58   main-is:             Main.hs
     59   other-modules:
     60     Property
     61     Wycheproof
     62 
     63   ghc-options:
     64     -rtsopts -Wall -O2
     65   if flag(sanitize)
     66     ghc-options: -optl=-fsanitize=address,undefined
     67 
     68   build-depends:
     69       aeson
     70     , base
     71     , bytestring
     72     , ppad-base16
     73     , ppad-sha512
     74     , quickcheck-instances
     75     , tasty
     76     , tasty-hunit
     77     , tasty-quickcheck
     78     , text
     79 
     80 benchmark sha512-bench
     81   type:                exitcode-stdio-1.0
     82   default-language:    Haskell2010
     83   hs-source-dirs:      bench
     84   main-is:             Main.hs
     85 
     86   ghc-options:
     87     -rtsopts -O2 -Wall
     88 
     89   build-depends:
     90       base
     91     , bytestring
     92     , criterion
     93     , ppad-sha512
     94     , SHA
     95 
     96 benchmark sha512-weigh
     97   type:                exitcode-stdio-1.0
     98   default-language:    Haskell2010
     99   hs-source-dirs:      bench
    100   main-is:             Weight.hs
    101 
    102   ghc-options:
    103     -rtsopts -O2 -Wall -fno-warn-orphans
    104   if flag(llvm)
    105     ghc-options: -fllvm
    106 
    107   build-depends:
    108       base
    109     , bytestring
    110     , deepseq
    111     , ppad-sha512
    112     , weigh
    113