cryptohash 0.7.4 → 0.7.5
raw patch · 15 files changed
+132/−14 lines, 15 filesdep +criteriondep ~basenew-component:exe:BenchPVP ok
version bump matches the API change (PVP)
Dependencies added: criterion
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- Bench.hs +42/−0
- Crypto/Hash/MD2.hs +5/−1
- Crypto/Hash/MD4.hs +5/−1
- Crypto/Hash/MD5.hs +5/−1
- Crypto/Hash/RIPEMD160.hs +5/−1
- Crypto/Hash/SHA1.hs +5/−1
- Crypto/Hash/SHA224.hs +5/−1
- Crypto/Hash/SHA256.hs +5/−1
- Crypto/Hash/SHA384.hs +5/−1
- Crypto/Hash/SHA512.hs +5/−1
- Crypto/Hash/Skein256.hs +6/−1
- Crypto/Hash/Skein512.hs +6/−1
- Crypto/Hash/Tiger.hs +5/−1
- LICENSE +1/−1
- cryptohash.cabal +27/−1
+ Bench.hs view
@@ -0,0 +1,42 @@+import Criterion.Main+import qualified Data.ByteString as B+import qualified Crypto.Hash.MD2 as MD2+import qualified Crypto.Hash.MD4 as MD4+import qualified Crypto.Hash.MD5 as MD5+import qualified Crypto.Hash.SHA1 as SHA1+import qualified Crypto.Hash.SHA224 as SHA224+import qualified Crypto.Hash.SHA256 as SHA256+import qualified Crypto.Hash.SHA384 as SHA384+import qualified Crypto.Hash.SHA512 as SHA512+import qualified Crypto.Hash.SHA512t as SHA512t+import qualified Crypto.Hash.RIPEMD160 as RIPEMD160+import qualified Crypto.Hash.Tiger as Tiger+import qualified Crypto.Hash.Skein256 as Skein256+import qualified Crypto.Hash.Skein512 as Skein512++allHashs =+ [ ("MD2",MD2.hash)+ , ("MD4",MD4.hash)+ , ("MD5",MD5.hash)+ , ("SHA1",SHA1.hash)+ , ("SHA224",SHA224.hash)+ , ("SHA256",SHA256.hash)+ , ("SHA384",SHA384.hash)+ , ("SHA512",SHA512.hash)+ , ("SHA512t-512",(SHA512t.hash 512))+ , ("RIPEMD160",RIPEMD160.hash)+ , ("Tiger",Tiger.hash)+ , ("Skein256-256",Skein256.hash 256)+ , ("Skein512-512",Skein512.hash 512)+ ]++benchHash :: Int -> (B.ByteString -> B.ByteString) -> Pure+benchHash sz f = whnf f (B.replicate sz 0)++withHashes f = map f allHashs++main = defaultMain+ [ bgroup "hash-256b" (withHashes (\(name, f) -> bench name $ benchHash 256 f))+ , bgroup "hash-4Kb" (withHashes (\(name, f) -> bench name $ benchHash 4096 f))+ , bgroup "hash-1Mb" (withHashes (\(name, f) -> bench name $ benchHash (1*1024*1024) f))+ ]
Crypto/Hash/MD2.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/MD4.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/MD5.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/RIPEMD160.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/SHA1.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/SHA224.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/SHA256.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/SHA384.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/SHA512.hs view
@@ -25,13 +25,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
Crypto/Hash/Skein256.hs view
@@ -24,14 +24,19 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String import Foreign.C.Types+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word+import Data.Bits #ifdef HAVE_CRYPTOAPI
Crypto/Hash/Skein512.hs view
@@ -24,14 +24,19 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String import Foreign.C.Types+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word+import Data.Bits #ifdef HAVE_CRYPTOAPI
Crypto/Hash/Tiger.hs view
@@ -24,13 +24,17 @@ ) where import Prelude hiding (init)-import Foreign+import System.IO.Unsafe (unsafePerformIO) import Foreign.C.String+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L import Data.ByteString (ByteString) import Data.ByteString.Unsafe (unsafeUseAsCString, unsafeUseAsCStringLen) import Data.ByteString.Internal (create, memcpy)+import Data.Word #ifdef HAVE_CRYPTOAPI
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2010 Vincent Hanquez <vincent@snarc.org>+Copyright (c) 2010-2012 Vincent Hanquez <vincent@snarc.org> All rights reserved.
cryptohash.cabal view
@@ -1,5 +1,5 @@ Name: cryptohash-Version: 0.7.4+Version: 0.7.5 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.@@ -28,6 +28,10 @@ Description: Build unit test Default: False +Flag benchmark+ Description: Build benchmark test+ Default: False+ Flag cryptoapi Description: Defines crypto-api instances Default: True@@ -81,6 +85,28 @@ if flag(test) Buildable: True Build-depends: base >= 4, HUnit, bytestring+ else+ Buildable: False+ if flag(cryptoapi)+ Build-depends: crypto-api >= 0.5, tagged >= 0.1, cereal >= 0.2+ cpp-options: -DHAVE_CRYPTOAPI++Executable Bench+ Main-Is: Bench.hs+ Extensions: ForeignFunctionInterface+ C-sources: cbits/sha1.c+ cbits/sha256.c+ cbits/sha512.c+ cbits/md2.c+ cbits/md4.c+ cbits/md5.c+ cbits/ripemd.c+ cbits/skein256.c+ cbits/skein512.c+ cbits/tiger.c+ if flag(benchmark)+ Buildable: True+ Build-depends: base >= 4, bytestring, criterion else Buildable: False if flag(cryptoapi)