-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Crypto-api interfaces for cryptohash
--   
--   Crypto-api interfaces for cryptohash
@package cryptohash-cryptoapi
@version 0.1.3


-- | Cryptohash API exported through crypto-api.
--   
--   Note: Current version (0.10) of crypto-api suffers a small performance
--   problem. see
--   <a>http://tab.snarc.org/others/benchmark-cryptohash-0.8.html</a>.
--   Hopefully, future versions will fix this.
module Crypto.Hash.CryptoAPI
data MD2
data MD4
data MD5
data SHA1
data SHA224
data SHA256
data SHA384
data SHA512
data Skein256_256
data Skein512_512
data RIPEMD160
data Tiger
data Whirlpool

-- | The Hash class is intended as the generic interface targeted by
--   maintainers of Haskell digest implementations. Using this generic
--   interface, higher level functions such as <a>hash</a> and <a>hash'</a>
--   provide a useful API for comsumers of hash implementations.
--   
--   Any instantiated implementation must handle unaligned data.
--   
--   Minimum complete definition: <a>outputLength</a>, <a>blockLength</a>,
--   <a>initialCtx</a>, <a>updateCtx</a>, and <a>finalize</a>.
class (Serialize d, Eq d, Ord d) => Hash ctx d | d -> ctx, ctx -> d
outputLength :: Hash ctx d => Tagged * d BitLength
blockLength :: Hash ctx d => Tagged * d BitLength
initialCtx :: Hash ctx d => ctx
updateCtx :: Hash ctx d => ctx -> ByteString -> ctx
finalize :: Hash ctx d => ctx -> ByteString -> d
hash :: Hash ctx d => ByteString -> d
hash' :: Hash ctx d => ByteString -> d
data CTXMD2
data CTXMD4
data CTXMD5
data CTXRIPEMD160
data CTXSHA1
data CTXSHA224
data CTXSHA256
data CTXSHA384
data CTXSHA512
data CTXSkein256_256
data CTXSkein512_512
data CTXTiger
data CTXWhirlpool
instance Eq MD2
instance Ord MD2
instance Show MD2
instance Eq MD4
instance Ord MD4
instance Show MD4
instance Eq MD5
instance Ord MD5
instance Show MD5
instance Eq SHA1
instance Ord SHA1
instance Show SHA1
instance Eq SHA224
instance Ord SHA224
instance Show SHA224
instance Eq SHA256
instance Ord SHA256
instance Show SHA256
instance Eq SHA384
instance Ord SHA384
instance Show SHA384
instance Eq SHA512
instance Ord SHA512
instance Show SHA512
instance Eq RIPEMD160
instance Ord RIPEMD160
instance Show RIPEMD160
instance Eq Tiger
instance Ord Tiger
instance Show Tiger
instance Eq Whirlpool
instance Ord Whirlpool
instance Show Whirlpool
instance Eq Skein256_256
instance Ord Skein256_256
instance Show Skein256_256
instance Eq Skein512_512
instance Ord Skein512_512
instance Show Skein512_512
instance Hash CTXSkein512_512 Skein512_512
instance Serialize Skein512_512
instance Hash CTXSkein256_256 Skein256_256
instance Serialize Skein256_256
instance Hash CTXWhirlpool Whirlpool
instance Serialize CTXWhirlpool
instance Serialize Whirlpool
instance Hash CTXTiger Tiger
instance Serialize CTXTiger
instance Serialize Tiger
instance Hash CTXRIPEMD160 RIPEMD160
instance Serialize CTXRIPEMD160
instance Serialize RIPEMD160
instance Hash CTXSHA512 SHA512
instance Serialize CTXSHA512
instance Serialize SHA512
instance Hash CTXSHA384 SHA384
instance Serialize CTXSHA384
instance Serialize SHA384
instance Hash CTXSHA256 SHA256
instance Serialize CTXSHA256
instance Serialize SHA256
instance Hash CTXSHA224 SHA224
instance Serialize CTXSHA224
instance Serialize SHA224
instance Hash CTXSHA1 SHA1
instance Serialize CTXSHA1
instance Serialize SHA1
instance Hash CTXMD5 MD5
instance Serialize CTXMD5
instance Serialize MD5
instance Hash CTXMD4 MD4
instance Serialize CTXMD4
instance Serialize MD4
instance Hash CTXMD2 MD2
instance Serialize CTXMD2
instance Serialize MD2
