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 (2140B)


      1 cabal-version:      3.0
      2 name:               ppad-sha256
      3 version:            0.2.5
      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 source-repository head
     23   type:     git
     24   location: git.ppad.tech/sha256.git
     25 
     26 library
     27   default-language: Haskell2010
     28   hs-source-dirs:   lib
     29   ghc-options:
     30       -Wall
     31   if flag(llvm)
     32     ghc-options: -fllvm -O2
     33   exposed-modules:
     34       Crypto.Hash.SHA256
     35       Crypto.Hash.SHA256.Arm
     36       Crypto.Hash.SHA256.Internal
     37       Crypto.Hash.SHA256.Lazy
     38   build-depends:
     39       base >= 4.9 && < 5
     40     , bytestring >= 0.9 && < 0.13
     41   c-sources:
     42       cbits/sha256_arm.c
     43   if arch(aarch64)
     44     cc-options: -march=armv8-a+crypto
     45 
     46 test-suite sha256-tests
     47   type:                exitcode-stdio-1.0
     48   default-language:    Haskell2010
     49   hs-source-dirs:      test
     50   main-is:             Main.hs
     51   other-modules:
     52     Wycheproof
     53 
     54   ghc-options:
     55     -rtsopts -Wall -O2
     56 
     57   build-depends:
     58       aeson
     59     , base
     60     , bytestring
     61     , ppad-base16
     62     , ppad-sha256
     63     , tasty
     64     , tasty-hunit
     65     , text
     66 
     67 benchmark sha256-bench
     68   type:                exitcode-stdio-1.0
     69   default-language:    Haskell2010
     70   hs-source-dirs:      bench
     71   main-is:             Main.hs
     72 
     73   ghc-options:
     74     -rtsopts -O2 -Wall
     75 
     76   build-depends:
     77       base
     78     , bytestring
     79     , criterion
     80     , ppad-sha256
     81     , SHA
     82 
     83 benchmark sha256-weigh
     84   type:                exitcode-stdio-1.0
     85   default-language:    Haskell2010
     86   hs-source-dirs:      bench
     87   main-is:             Weight.hs
     88 
     89   ghc-options:
     90     -rtsopts -O2 -Wall -fno-warn-orphans
     91   if flag(llvm)
     92     ghc-options: -fllvm
     93 
     94   build-depends:
     95       base
     96     , bytestring
     97     , deepseq
     98     , ppad-sha256
     99     , weigh
    100