sha256

Pure Haskell SHA-256, HMAC-SHA256 (docs.ppad.tech/sha256).
git clone git://git.ppad.tech/sha256.git
Log | Files | Refs | README | LICENSE

ppad-sha256.cabal (2562B)


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