packages feed

blake2-0.3.0.1: blake2.cabal

cabal-version: 3.0

name:          blake2
version:       0.3.0.1
synopsis:      A library providing BLAKE2
license:       Unlicense
license-file:  LICENSE
author:        John Galt
maintainer:    jgalt@centromere.net
homepage:      https://github.com/haskell-cryptography/blake2
bug-reports:   https://github.com/haskell-cryptography/blake2/issues
category:      Cryptography
description:
  This library provides the <https://blake2.net/ BLAKE2> hash algorithms.

extra-source-files:
  README.md
  changelog.md
  include/ref/*.h
  include/sse/*.h

source-repository head
  type: git
  location: https://github.com/haskell-cryptography/blake2.git

flag hlint

flag llvm
  default: False
  manual: True

flag support_blake2_sse
  description: Use SSE optimized version of BLAKE2
  default: False
  manual: True

common base
  default-language: Haskell2010
  ghc-options: -Wall -fwarn-tabs
  build-depends:
    , base ^>= 4.15 || ^>= 4.16 || ^>= 4.17 || ^>= 4.18
    , bytestring ^>= 0.10.12 || ^>= 0.11

library
  import: base
  hs-source-dirs: src
  exposed-modules:
    Crypto.Hash.BLAKE2.BLAKE2b
    Crypto.Hash.BLAKE2.BLAKE2bp
    Crypto.Hash.BLAKE2.BLAKE2s
    Crypto.Hash.BLAKE2.BLAKE2sp
    Crypto.Hash.BLAKE2.Internal
  cc-options: -std=c99

  if arch(x86_64) || flag(support_blake2_sse)
    c-sources:
      cbits/sse/blake2b.c
      cbits/sse/blake2bp.c
      cbits/sse/blake2s.c
      cbits/sse/blake2sp.c
    include-dirs: include/sse
  else
    c-sources:
      cbits/ref/blake2b-ref.c
      cbits/ref/blake2bp-ref.c
      cbits/ref/blake2s-ref.c
      cbits/ref/blake2sp-ref.c
    include-dirs: include/ref

  if flag(llvm)
    ghc-options: -fllvm

test-suite properties
  import: base
  type: exitcode-stdio-1.0
  main-is: properties.hs
  hs-source-dirs: tests

  build-depends:
    , base16-bytestring ^>= 1.0.0
    , blake2
    , QuickCheck ^>= 2.14.3
    , tasty ^>= 1.4.3
    , tasty-quickcheck ^>= 0.10.2

  other-modules:
    Imports

test-suite hlint
  import: base
  type: exitcode-stdio-1.0
  main-is: hlint.hs
  hs-source-dirs: tests

  if !flag(hlint)
    buildable: False
  else
    build-depends: hlint ^>= 3.5

benchmark bench
  import: base
  type: exitcode-stdio-1.0
  main-is: bench.hs
  hs-source-dirs: benchmarks

  build-depends:
    , blake2
    , criterion ^>= 1.6.2