name:                sha256
version:             0.1.0.0
synopsis:
  A modern binding to SHA256, HMAC, HKDF, and PBKDF2
description:
  A modern binding to SHA256, HMAC, HKDF, and PBKDF2 supporting precomputed
  HMAC keys, streaming, backtracking, bitstring inputs, and (de)serialization
  of intermediate states.  Both HKDF and PBKDF2 reuse HMAC key computations
  for efficiency.
license:             Apache-2.0
license-file:        LICENSE
author:              Vincent Hanquez, Herbert Valerio Riedel, Leon P Smith
maintainer:          Auth Global
copyright:           2006 Vincent Hanquez, 2016 Herbert Valerio Riedel, 2024 Auth Global
category:            Graphics
build-type:          Simple
extra-source-files:  CHANGELOG.md
cabal-version:       >=1.10

library
  exposed-modules:
                     Crypto.Sha256
                     Crypto.Sha256.Subtle
                     Crypto.Sha256.Hmac
                     Crypto.Sha256.Hmac.Subtle
                     Crypto.Sha256.Hkdf
                     Crypto.Sha256.Hkdf.Subtle
                     Crypto.Sha256.Pbkdf2
                     Crypto.Sha256.Pbkdf2.Subtle
                     -- Crypto.Sha256.ST
                     -- Crypto.Sha256.ST.Subtle

  other-modules:
                     Crypto.Sha256.Hmac.Implementation

  build-depends:     base < 5
                   , bytestring
                   , hash-string
                   , network-byte-order
                   , ghc-prim

  hs-source-dirs:    lib
  include-dirs:      csrc
  default-language:  Haskell2010
  ghc-options:       -Wall
  cc-options:        -Wall  
  install-includes:  csrc/hs_sha256.h
  c-sources:         csrc/hs_sha256.c

test-suite test
  type:              exitcode-stdio-1.0
  hs-source-dirs:    test
  main-is:           Main.hs

  other-modules:     HMAC,
                     HKDF,
                     PBKDF2
  build-depends:     base
                   , base16
                   , bytestring
                   , hash-string
                   , sha256
                   , tasty
                   , tasty-hunit
  default-language:  Haskell2010