cryptohash-cryptoapi 0.1.1 → 0.1.2
raw patch · 2 files changed
+30/−19 lines, 2 filesdep ~basedep ~bytestringdep ~cereal
Dependency ranges changed: base, bytestring, cereal, crypto-api, cryptohash, tagged
Files
- Crypto/Hash/CryptoAPI.hs +29/−18
- cryptohash-cryptoapi.cabal +1/−1
Crypto/Hash/CryptoAPI.hs view
@@ -28,25 +28,27 @@ , Tiger , Whirlpool , Hash(..)- , hash- , hash'+ -- * Contexts+ , CTXMD2, CTXMD4, CTXMD5, CTXRIPEMD160, CTXSHA1, CTXSHA224+ , CTXSHA256, CTXSHA384, CTXSHA512, CTXSkein256_256, CTXSkein512_512+ , CTXTiger, CTXWhirlpool ) where -import qualified Crypto.Hash.MD2 as MD2 (Ctx, init, update, finalize)-import qualified Crypto.Hash.MD4 as MD4 (Ctx, init, update, finalize)-import qualified Crypto.Hash.MD5 as MD5 (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA1 as SHA1 (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA224 as SHA224 (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA256 as SHA256 (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA384 as SHA384 (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA512 as SHA512 (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA512t as SHA512t (Ctx, init, update, finalize)-import qualified Crypto.Hash.SHA3 as SHA3 (Ctx, init, update, finalize)-import qualified Crypto.Hash.RIPEMD160 as RIPEMD160 (Ctx, init, update, finalize)-import qualified Crypto.Hash.Tiger as Tiger (Ctx, init, update, finalize)-import qualified Crypto.Hash.Skein256 as Skein256 (Ctx, init, update, finalize)-import qualified Crypto.Hash.Skein512 as Skein512 (Ctx, init, update, finalize)-import qualified Crypto.Hash.Whirlpool as Whirlpool (Ctx, init, update, finalize)+import qualified Crypto.Hash.MD2 as MD2 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.MD4 as MD4 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.MD5 as MD5 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA1 as SHA1 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA224 as SHA224 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA256 as SHA256 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA384 as SHA384 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA512 as SHA512 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA512t as SHA512t (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.SHA3 as SHA3 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.RIPEMD160 as RIPEMD160 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.Tiger as Tiger (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.Skein256 as Skein256 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.Skein512 as Skein512 (Ctx(..), init, update, finalize, hash, hashlazy)+import qualified Crypto.Hash.Whirlpool as Whirlpool (Ctx(..), init, update, finalize, hash, hashlazy) import Control.Monad (liftM) import Data.ByteString (ByteString)@@ -79,12 +81,19 @@ ; initialCtx = CTXNAME MODULENAME.init \ ; updateCtx (CTXNAME ctx) = CTXNAME . MODULENAME.update ctx \ ; finalize (CTXNAME ctx) bs = NAME $ MODULENAME.finalize (MODULENAME.update ctx bs) \+ ; hash' = NAME . MODULENAME.hash \+ ; hash = NAME . MODULENAME.hashlazy \ }; \ \ instance Serialize NAME where \ { get = liftM NAME (getByteString OUTPUTLEN) \ ; put (NAME d) = putByteString d \- }+ }; \+\+instance Serialize CTXNAME where \+ { get = liftM (CTXNAME . MODULENAME.Ctx) get \+ ; put (CTXNAME (MODULENAME.Ctx c)) = put c \+ } #define DEFINE_TYPE_AND_INSTANCES_WITHLEN(CTXNAME, NAME, ILEN, MODULENAME, OUTPUTLEN, BLOCKLEN) \ \@@ -98,6 +107,8 @@ ; initialCtx = CTXNAME (MODULENAME.init ILEN) \ ; updateCtx (CTXNAME ctx) = CTXNAME . MODULENAME.update ctx \ ; finalize (CTXNAME ctx) bs = NAME $ MODULENAME.finalize (MODULENAME.update ctx bs) \+ ; hash' = NAME . MODULENAME.hash OUTPUTLEN \+ ; hash = NAME . MODULENAME.hashlazy OUTPUTLEN \ }; \ \ instance Serialize NAME where \
cryptohash-cryptoapi.cabal view
@@ -1,5 +1,5 @@ Name: cryptohash-cryptoapi-Version: 0.1.1+Version: 0.1.2 Description: Crypto-api interfaces for cryptohash License: BSD3 License-file: LICENSE