packages feed

cryptohash-0.10.0: cryptohash.cabal

Name:                cryptohash
Version:             0.10.0
Description:
    A collection of crypto hashes, with a practical incremental and one-pass, pure APIs,
    with performance close to the fastest implementations available in others languages.
    .
    The implementations are made in C with a haskell FFI wrapper that hide the C implementation.
    .
    Simple examples using the unified API:
    .
    > import Crypto.Hash
    >
    > sha1 :: ByteString -> Digest SHA1
    > sha1 = hash
    >
    > hexSha3_512 :: ByteString -> String
    > hexSha3_512 bs = show (hash bs :: Digest SHA3_512)
    .
    Simple examples using the module API:
    .
    > import qualified Crypto.Hash.SHA1 as SHA1
    >
    > main = putStrLn $ show $ SHA1.hash (Data.ByteString.pack [1..256])
    .
    > import qualified Crypto.Hash.SHA3 as SHA3
    >
    > main = putStrLn $ show $ digest
    >   where digest = SHA3.finalize ctx
    >         ctx    = foldl' SHA3.update iCtx (map Data.ByteString.pack [ [1,2,3], [4,5,6] ]
    >         iCtx   = SHA3.init 224
License:             BSD3
License-file:        LICENSE
Copyright:           Vincent Hanquez <vincent@snarc.org>
Author:              Vincent Hanquez <vincent@snarc.org>
Maintainer:          Vincent Hanquez <vincent@snarc.org>
Synopsis:            collection of crypto hashes, fast, pure and practical
Category:            Data, Cryptography
Build-Type:          Simple
Cabal-Version:       >=1.8
Homepage:            http://github.com/vincenthz/hs-cryptohash
data-files:          README.md

extra-source-files:
  cbits/bitfn.h cbits/md2.h cbits/md4.h cbits/md5.h
  cbits/ripemd.h cbits/sha1.h cbits/sha256.h cbits/sha512.h cbits/sha3.h
  cbits/skein.h cbits/skein256.h cbits/skein512.h
  cbits/tiger.h cbits/whirlpool.h

Library
  Build-Depends:     base >= 4 && < 6, bytestring, byteable, ghc-prim
  if impl(ghc >= 7.2.1)
    Extensions:      Trustworthy
  Extensions:        ForeignFunctionInterface
  Exposed-modules:   Crypto.Hash
                     Crypto.Hash.Types
                     Crypto.Hash.SHA1
                     Crypto.Hash.SHA224
                     Crypto.Hash.SHA256
                     Crypto.Hash.SHA384
                     Crypto.Hash.SHA512
                     Crypto.Hash.SHA512t
                     Crypto.Hash.SHA3
                     Crypto.Hash.MD2
                     Crypto.Hash.MD4
                     Crypto.Hash.MD5
                     Crypto.Hash.RIPEMD160
                     Crypto.Hash.Skein256
                     Crypto.Hash.Skein512
                     Crypto.Hash.Tiger
                     Crypto.Hash.Whirlpool
                     Crypto.MAC.HMAC
  Other-modules:     Crypto.Hash.Utils
                     Crypto.Hash.Utils.Cpu
                     Crypto.Hash.Internal
  ghc-options:       -Wall -O2 -optc-O3 -fno-cse -fwarn-tabs
  C-sources:         cbits/sha1.c
                     cbits/sha256.c
                     cbits/sha512.c
                     cbits/sha3.c
                     cbits/md2.c
                     cbits/md4.c
                     cbits/md5.c
                     cbits/ripemd.c
                     cbits/skein256.c
                     cbits/skein512.c
                     cbits/tiger.c
                     cbits/whirlpool.c
  Include-Dirs:      cbits
  if (arch(i386) || arch(x86_64))
    cpp-options: -DARCH_X86

Test-Suite test-kat
  type:              exitcode-stdio-1.0
  hs-source-dirs:    Tests
  Main-Is:           KAT.hs
  Build-depends:     base >= 4 && < 5
                   , bytestring
                   , HUnit
                   , QuickCheck >= 2
                   , test-framework >= 0.3.3
                   , test-framework-quickcheck2 >= 0.2.9
                   , test-framework-hunit
                   , cryptohash

Benchmark bench-hashes
  Main-Is:           Bench.hs
  hs-source-dirs:    Bench
  type:              exitcode-stdio-1.0
  Build-depends:     base >= 4, bytestring, criterion, cryptohash

Benchmark bench-api
  Main-Is:           BenchAPI.hs
  hs-source-dirs:    Bench
  type:              exitcode-stdio-1.0
  Build-depends:     base >= 4, bytestring, criterion, cryptohash, byteable

source-repository head
  type:     git
  location: git://github.com/vincenthz/hs-cryptohash