Blame cryptohash-sha256.cabal

Packit f46cda
cabal-version:       1.12
Packit f46cda
name:                cryptohash-sha256
Packit f46cda
version:             0.11.101.0
Packit f46cda
Packit f46cda
synopsis:            Fast, pure and practical SHA-256 implementation
Packit f46cda
description: {
Packit f46cda
Packit f46cda
A practical incremental and one-pass, pure API to
Packit f46cda
the [SHA-256 cryptographic hash algorithm](https://en.wikipedia.org/wiki/SHA-2) according
Packit f46cda
to [FIPS 180-4](http://dx.doi.org/10.6028/NIST.FIPS.180-4)
Packit f46cda
with performance close to the fastest implementations available in other languages.
Packit f46cda
.
Packit f46cda
The core SHA-256 algorithm is implemented in C and is thus expected
Packit f46cda
to be as fast as the standard [sha256sum(1) tool](https://linux.die.net/man/1/sha256sum);
Packit f46cda
for instance, on an /Intel Core i7-3770/ at 3.40GHz this implementation can
Packit f46cda
compute a SHA-256 hash over 230 MiB of data in under one second.
Packit f46cda
(If, instead, you require a pure Haskell implementation and performance is secondary, please refer to the [SHA package](https://hackage.haskell.org/package/SHA).)
Packit f46cda
.
Packit f46cda
Packit f46cda
.
Packit f46cda
Additionally, this package provides support for
Packit f46cda
.
Packit f46cda
- HMAC-SHA-256: SHA-256-based [Hashed Message Authentication Codes](https://en.wikipedia.org/wiki/HMAC) (HMAC)
Packit f46cda
- HKDF-SHA-256: [HMAC-SHA-256-based Key Derivation Function](https://en.wikipedia.org/wiki/HKDF) (HKDF)
Packit f46cda
.
Packit f46cda
conforming to [RFC6234](https://tools.ietf.org/html/rfc6234), [RFC4231](https://tools.ietf.org/html/rfc4231), [RFC5869](https://tools.ietf.org/html/rfc5869), et al..
Packit f46cda
.
Packit f46cda
=== Relationship to the @cryptohash@ package and its API
Packit f46cda
.
Packit f46cda
This package has been originally a fork of @cryptohash-0.11.7@ because the @cryptohash@
Packit f46cda
package had been deprecated and so this package continues to satisfy the need for a
Packit f46cda
lightweight package providing the SHA-256 hash algorithm without any dependencies on packages
Packit f46cda
other than @base@ and @bytestring@. The API exposed by @cryptohash-sha256-0.11.*@'s
Packit f46cda
"Crypto.Hash.SHA256" module is guaranteed to remain a compatible superset of the API provided
Packit f46cda
by the @cryptohash-0.11.7@'s module of the same name.
Packit f46cda
.
Packit f46cda
Consequently, this package is designed to be used as a drop-in replacement for @cryptohash-0.11.7@'s
Packit f46cda
"Crypto.Hash.SHA256" module, though with
Packit f46cda
a [clearly smaller footprint by almost 3 orders of magnitude](https://www.reddit.com/r/haskell/comments/5lxv75/psa_please_use_unique_module_names_when_uploading/dbzegx3/).
Packit f46cda
Packit f46cda
}
Packit f46cda
Packit f46cda
license:             BSD3
Packit f46cda
license-file:        LICENSE
Packit f46cda
copyright:           Vincent Hanquez, Herbert Valerio Riedel
Packit f46cda
maintainer:          Herbert Valerio Riedel <hvr@gnu.org>
Packit f46cda
homepage:            https://github.com/hvr/cryptohash-sha256
Packit f46cda
bug-reports:         https://github.com/hvr/cryptohash-sha256/issues
Packit f46cda
category:            Data, Cryptography
Packit f46cda
build-type:          Simple
Packit f46cda
tested-with:         GHC == 7.4.2
Packit f46cda
                   , GHC == 7.6.3
Packit f46cda
                   , GHC == 7.8.4
Packit f46cda
                   , GHC == 7.10.3
Packit f46cda
                   , GHC == 8.0.2
Packit f46cda
                   , GHC == 8.2.1
Packit f46cda
Packit f46cda
extra-source-files:  cbits/hs_sha256.h
Packit f46cda
                     changelog.md
Packit f46cda
Packit f46cda
source-repository head
Packit f46cda
  type:     git
Packit f46cda
  location: https://github.com/hvr/cryptohash-sha256.git
Packit f46cda
Packit f46cda
flag exe
Packit f46cda
  description: Enable building @sha256sum@ executable
Packit f46cda
  manual:   True
Packit f46cda
  default:  False
Packit f46cda
Packit f46cda
library
Packit f46cda
  default-language:  Haskell2010
Packit f46cda
  other-extensions:  BangPatterns
Packit f46cda
                     CApiFFI
Packit f46cda
                     Trustworthy
Packit f46cda
                     Unsafe
Packit f46cda
Packit f46cda
  build-depends:     base             >= 4.5   && < 4.11
Packit f46cda
                   , bytestring       >= 0.9.2 && < 0.11
Packit f46cda
Packit f46cda
  ghc-options:       -Wall
Packit f46cda
Packit f46cda
  hs-source-dirs:    src
Packit f46cda
  exposed-modules:   Crypto.Hash.SHA256
Packit f46cda
  other-modules:     Crypto.Hash.SHA256.FFI
Packit f46cda
  include-dirs:      cbits
Packit f46cda
Packit f46cda
executable sha256sum
Packit f46cda
  hs-source-dirs:    src-exe
Packit f46cda
  main-is:           sha256sum.hs
Packit f46cda
  ghc-options:       -Wall -threaded
Packit f46cda
  if flag(exe)
Packit f46cda
    default-language:  Haskell2010
Packit f46cda
    other-extensions:  RecordWildCards
Packit f46cda
    build-depends:     cryptohash-sha256
Packit f46cda
                     , base
Packit f46cda
                     , bytestring
Packit f46cda
Packit f46cda
                     , base16-bytestring >= 0.1.1  && < 0.2
Packit f46cda
  else
Packit f46cda
    buildable:       False
Packit f46cda
Packit f46cda
test-suite test-sha256
Packit f46cda
  default-language:  Haskell2010
Packit f46cda
  other-extensions:  OverloadedStrings
Packit f46cda
  type:              exitcode-stdio-1.0
Packit f46cda
  hs-source-dirs:    src-tests
Packit f46cda
  main-is:           test-sha256.hs
Packit f46cda
  ghc-options:       -Wall -threaded
Packit f46cda
  build-depends:     cryptohash-sha256
Packit f46cda
                   , base
Packit f46cda
                   , bytestring
Packit f46cda
Packit f46cda
                   , base16-bytestring >= 0.1.1  && < 0.2
Packit f46cda
                   , SHA               >= 1.6.4  && < 1.7
Packit f46cda
                   , tasty             == 0.11.*
Packit f46cda
                   , tasty-quickcheck  == 0.8.*
Packit f46cda
                   , tasty-hunit       == 0.9.*
Packit f46cda
Packit f46cda
benchmark bench-sha256
Packit f46cda
  default-language:  Haskell2010
Packit f46cda
  other-extensions:  BangPatterns
Packit f46cda
  type:              exitcode-stdio-1.0
Packit f46cda
  main-is:           bench-sha256.hs
Packit f46cda
  hs-source-dirs:    src-bench
Packit f46cda
  build-depends:     cryptohash-sha256
Packit f46cda
                   , base
Packit f46cda
                   , bytestring
Packit f46cda
                   , criterion        == 1.1.*