cabal-version:       >=1.10
name:                cryptohash-md5
version:             0.11.101.0
x-revision:          6
description:
    A practical incremental and one-pass, pure API to the
    <https://en.wikipedia.org/wiki/MD5 MD5 hash algorithm>
    (including <https://en.wikipedia.org/wiki/HMAC HMAC> support)
    with performance close to the fastest implementations available in other languages.
    .
    The implementation is made in C with a haskell FFI wrapper that hides the C implementation.
    .
    NOTE: This package has been forked off @cryptohash-0.11.7@ because the @cryptohash@ package
    has been deprecated and so this package continues to satisfy the need for a lightweight package
    providing the MD5 hash algorithm without any dependencies on packages other than
    @base@ and @bytestring@.
    .
    Consequently, this package can be used as a drop-in replacement for @cryptohash@'s
    "Crypto.Hash.MD5" module, though with a clearly smaller footprint.

license:             BSD3
license-file:        LICENSE
copyright:           Vincent Hanquez, Herbert Valerio Riedel
maintainer:          https://github.com/haskell-hvr/cryptohash-md5
homepage:            https://github.com/haskell-hvr/cryptohash-md5
bug-reports:         https://github.com/haskell-hvr/cryptohash-md5/issues
synopsis:            Fast, pure and practical MD5 implementation
category:            Data, Cryptography
build-type:          Simple

tested-with:
  GHC == 9.12.1
  GHC == 9.10.1
  GHC == 9.8.4
  GHC == 9.6.6
  GHC == 9.4.8
  GHC == 9.2.8
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2

extra-source-files:  cbits/md5.h
                     changelog.md

source-repository head
  type:     git
  location: https://github.com/haskell-hvr/cryptohash-md5.git

library
  default-language:  Haskell2010
  build-depends:     base             >= 4.5   && < 5
                   , bytestring       >= 0.9.2 && < 0.13

  hs-source-dirs:    src
  exposed-modules:   Crypto.Hash.MD5
  other-modules:     Crypto.Hash.MD5.FFI Compat
  ghc-options:       -Wall -fno-cse -O2
  cc-options:        -Wall
  include-dirs:      cbits

test-suite test-md5
  default-language:  Haskell2010
  other-extensions:  OverloadedStrings
  type:              exitcode-stdio-1.0
  hs-source-dirs:    src-tests
  main-is:           test-md5.hs
  ghc-options:       -Wall -threaded
  build-depends:     cryptohash-md5
                   , base
                   , bytestring

                   , base16-bytestring >= 1.0.1.0 && < 1.1
                   , pureMD5           >= 2.1.3   && < 2.2
                   , tasty             >= 1.4     && < 1.6
                   , tasty-quickcheck  >= 0.10    && < 1
                   , tasty-hunit       == 0.10.*

benchmark bench-md5
  default-language:  Haskell2010
  type:              exitcode-stdio-1.0
  main-is:           bench-md5.hs
  hs-source-dirs:    src-bench
  build-depends:     cryptohash-md5
                   , base
                   , bytestring
                   , criterion        >= 1.5 && <1.7