cryptohash-0.11.9: collection of crypto hashes, fast, pure and practical

License | BSD-style
Maintainer | Vincent Hanquez <vincent@snarc.org>
Stability | experimental
Portability | unknown
Safe Haskell | Trustworthy
Language | Haskell98

Crypto.Hash

Contents

- Types
- Functions
- hash algorithms
- MAC algorithms

Description

Generalized cryptographic hash interface, that you can use with cryptographic hash algorithm that belong to the HashAlgorithm type class.

    import Crypto.Hash

    sha1 :: ByteString -> Digest SHA1
    sha1 = hash

    hexSha3_512 :: ByteString -> String
    hexSha3_512 bs = show (hash bs :: Digest SHA3_512)

Synopsis

- class HashAlgorithm a where
- type HashFunctionBS a = ByteString -> Digest a
- type HashFunctionLBS a = ByteString -> Digest a
- data Context a
- data Digest a
- digestToByteString :: Digest a -> ByteString
- digestToHexByteString :: Digest a -> ByteString
- hash :: HashAlgorithm a => ByteString -> Digest a
- hashlazy :: HashAlgorithm a => ByteString -> Digest a
- hashUpdate :: HashAlgorithm a => Context a -> ByteString -> Context a
- hashInitAlg :: HashAlgorithm alg => alg -> Context alg
- data MD2 :: * = MD2
- data MD4 :: * = MD4
- data MD5 :: * = MD5
- data SHA1 :: * = SHA1
- data SHA224 :: * = SHA224
- data SHA256 :: * = SHA256
- data SHA384 :: * = SHA384
- data SHA512 :: * = SHA512
- data RIPEMD160 :: * = RIPEMD160
- data Tiger :: * = Tiger
- data SHA3_224 :: * = SHA3_224
- data SHA3_256 :: * = SHA3_256
- data SHA3_384 :: * = SHA3_384
- data SHA3_512 :: * = SHA3_512
- data Skein256_224 :: * = Skein256_224
- data Skein256_256 :: * = Skein256_256
- data Skein512_224 :: * = Skein512_224
- data Skein512_256 :: * = Skein512_256
- data Skein512_384 :: * = Skein512_384
- data Skein512_512 :: * = Skein512_512
- data Whirlpool :: * = Whirlpool
- newtype HMAC a = HMAC {
  - hmacGetDigest :: Digest a
  }
- hmac :: HashAlgorithm a => ByteString -> ByteString -> HMAC a
- hmacAlg :: HashAlgorithm a => a -> ByteString -> ByteString -> HMAC a

# Types

class HashAlgorithm a where Source #

Class representing hashing algorithms.

The hash algorithm is built over 3 primitives:

- init : create a new hashing context
- updates : update the hashing context with some strict bytestrings and return the new context
- finalize : finalize the context into a digest

Minimal complete definition

hashBlockSize, hashInit, hashUpdates, hashFinalize, digestFromByteString

Methods

hashBlockSize :: Context a -> Int Source #

Block size in bytes the hash algorithm operates on

hashInit :: Context a Source #

Initialize a new context for this hash algorithm

hashUpdates :: Context a -> [ByteString] -> Context a Source #

Update the context with a list of strict bytestring, and return a new context with the updates.

hashFinalize :: Context a -> Digest a Source #

Finalize a context and return a digest.

digestFromByteString :: ByteString -> Maybe (Digest a) Source #

Try to convert a binary digest bytestring to a digest.

Instances

HashAlgorithm MD2 Source # | MD2 cryptographic hash
Methods hashBlockSize :: Context MD2 -> Int Source # hashInit :: Context MD2 Source # hashUpdates :: Context MD2 -> [ByteString] -> Context MD2 Source # hashFinalize :: Context MD2 -> Digest MD2 Source # digestFromByteString :: ByteString -> Maybe (Digest MD2) Source #
HashAlgorithm MD4 Source # | MD4 cryptographic hash
Methods hashBlockSize :: Context MD4 -> Int Source # hashInit :: Context MD4 Source # hashUpdates :: Context MD4 -> [ByteString] -> Context MD4 Source # hashFinalize :: Context MD4 -> Digest MD4 Source # digestFromByteString :: ByteString -> Maybe (Digest MD4) Source #
HashAlgorithm MD5 Source # | MD5 cryptographic hash
Methods hashBlockSize :: Context MD5 -> Int Source # hashInit :: Context MD5 Source # hashUpdates :: Context MD5 -> [ByteString] -> Context MD5 Source # hashFinalize :: Context MD5 -> Digest MD5 Source # digestFromByteString :: ByteString -> Maybe (Digest MD5) Source #
HashAlgorithm RIPEMD160 Source # | RIPEMD160 cryptographic hash
Methods hashBlockSize :: Context RIPEMD160 -> Int Source # hashInit :: Context RIPEMD160 Source # hashUpdates :: Context RIPEMD160 -> [ByteString] -> Context RIPEMD160 Source # hashFinalize :: Context RIPEMD160 -> Digest RIPEMD160 Source # digestFromByteString :: ByteString -> Maybe (Digest RIPEMD160) Source #
HashAlgorithm SHA1 Source # | SHA1 cryptographic hash
Methods hashBlockSize :: Context SHA1 -> Int Source # hashInit :: Context SHA1 Source # hashUpdates :: Context SHA1 -> [ByteString] -> Context SHA1 Source # hashFinalize :: Context SHA1 -> Digest SHA1 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA1) Source #
HashAlgorithm SHA224 Source # | SHA224 cryptographic hash
Methods hashBlockSize :: Context SHA224 -> Int Source # hashInit :: Context SHA224 Source # hashUpdates :: Context SHA224 -> [ByteString] -> Context SHA224 Source # hashFinalize :: Context SHA224 -> Digest SHA224 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA224) Source #
HashAlgorithm SHA256 Source # | SHA256 cryptographic hash
Methods hashBlockSize :: Context SHA256 -> Int Source # hashInit :: Context SHA256 Source # hashUpdates :: Context SHA256 -> [ByteString] -> Context SHA256 Source # hashFinalize :: Context SHA256 -> Digest SHA256 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA256) Source #
HashAlgorithm SHA3_224 Source # | SHA3 (224 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_224 -> Int Source # hashInit :: Context SHA3_224 Source # hashUpdates :: Context SHA3_224 -> [ByteString] -> Context SHA3_224 Source # hashFinalize :: Context SHA3_224 -> Digest SHA3_224 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_224) Source #
HashAlgorithm SHA3_256 Source # | SHA3 (256 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_256 -> Int Source # hashInit :: Context SHA3_256 Source # hashUpdates :: Context SHA3_256 -> [ByteString] -> Context SHA3_256 Source # hashFinalize :: Context SHA3_256 -> Digest SHA3_256 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_256) Source #
HashAlgorithm SHA3_384 Source # | SHA3 (384 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_384 -> Int Source # hashInit :: Context SHA3_384 Source # hashUpdates :: Context SHA3_384 -> [ByteString] -> Context SHA3_384 Source # hashFinalize :: Context SHA3_384 -> Digest SHA3_384 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_384) Source #
HashAlgorithm SHA3_512 Source # | SHA3 (512 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_512 -> Int Source # hashInit :: Context SHA3_512 Source # hashUpdates :: Context SHA3_512 -> [ByteString] -> Context SHA3_512 Source # hashFinalize :: Context SHA3_512 -> Digest SHA3_512 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_512) Source #
HashAlgorithm SHA384 Source # | SHA384 cryptographic hash
Methods hashBlockSize :: Context SHA384 -> Int Source # hashInit :: Context SHA384 Source # hashUpdates :: Context SHA384 -> [ByteString] -> Context SHA384 Source # hashFinalize :: Context SHA384 -> Digest SHA384 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA384) Source #
HashAlgorithm SHA512 Source # | SHA512 cryptographic hash
Methods hashBlockSize :: Context SHA512 -> Int Source # hashInit :: Context SHA512 Source # hashUpdates :: Context SHA512 -> [ByteString] -> Context SHA512 Source # hashFinalize :: Context SHA512 -> Digest SHA512 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA512) Source #
HashAlgorithm Skein256_224 Source # | Skein256 (224 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein256_224 -> Int Source # hashInit :: Context Skein256_224 Source # hashUpdates :: Context Skein256_224 -> [ByteString] -> Context Skein256_224 Source # hashFinalize :: Context Skein256_224 -> Digest Skein256_224 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein256_224) Source #
HashAlgorithm Skein256_256 Source # | Skein256 (256 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein256_256 -> Int Source # hashInit :: Context Skein256_256 Source # hashUpdates :: Context Skein256_256 -> [ByteString] -> Context Skein256_256 Source # hashFinalize :: Context Skein256_256 -> Digest Skein256_256 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein256_256) Source #
HashAlgorithm Skein512_224 Source # | Skein512 (224 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_224 -> Int Source # hashInit :: Context Skein512_224 Source # hashUpdates :: Context Skein512_224 -> [ByteString] -> Context Skein512_224 Source # hashFinalize :: Context Skein512_224 -> Digest Skein512_224 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_224) Source #
HashAlgorithm Skein512_256 Source # | Skein512 (256 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_256 -> Int Source # hashInit :: Context Skein512_256 Source # hashUpdates :: Context Skein512_256 -> [ByteString] -> Context Skein512_256 Source # hashFinalize :: Context Skein512_256 -> Digest Skein512_256 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_256) Source #
HashAlgorithm Skein512_384 Source # | Skein512 (384 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_384 -> Int Source # hashInit :: Context Skein512_384 Source # hashUpdates :: Context Skein512_384 -> [ByteString] -> Context Skein512_384 Source # hashFinalize :: Context Skein512_384 -> Digest Skein512_384 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_384) Source #
HashAlgorithm Skein512_512 Source # | Skein512 (512 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_512 -> Int Source # hashInit :: Context Skein512_512 Source # hashUpdates :: Context Skein512_512 -> [ByteString] -> Context Skein512_512 Source # hashFinalize :: Context Skein512_512 -> Digest Skein512_512 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_512) Source #
HashAlgorithm Tiger Source # | Tiger cryptographic hash
Methods hashBlockSize :: Context Tiger -> Int Source # hashInit :: Context Tiger Source # hashUpdates :: Context Tiger -> [ByteString] -> Context Tiger Source # hashFinalize :: Context Tiger -> Digest Tiger Source # digestFromByteString :: ByteString -> Maybe (Digest Tiger) Source #
HashAlgorithm Whirlpool Source # | Whirlpool cryptographic hash
Methods hashBlockSize :: Context Whirlpool -> Int Source # hashInit :: Context Whirlpool Source # hashUpdates :: Context Whirlpool -> [ByteString] -> Context Whirlpool Source # hashFinalize :: Context Whirlpool -> Digest Whirlpool Source # digestFromByteString :: ByteString -> Maybe (Digest Whirlpool) Source #

type HashFunctionBS a = ByteString -> Digest a Source #

Alias to a single pass hash function that operate on a strict bytestring

type HashFunctionLBS a = ByteString -> Digest a Source #

Alias to a single pass hash function that operate on a lazy bytestring

data Context a Source #

Represent a context for a given hash algorithm.

Instances

Byteable (Context a) Source # |
Methods toBytes :: Context a -> ByteString # byteableLength :: Context a -> Int # withBytePtr :: Context a -> (Ptr Word8 -> IO b) -> IO b #

data Digest a Source #

Represent a digest for a given hash algorithm.

Instances

Eq (Digest a) Source # |
Methods (==) :: Digest a -> Digest a -> Bool # (/=) :: Digest a -> Digest a -> Bool #
Ord (Digest a) Source # |
Methods compare :: Digest a -> Digest a -> Ordering # (<) :: Digest a -> Digest a -> Bool # (<=) :: Digest a -> Digest a -> Bool # (>) :: Digest a -> Digest a -> Bool # (>=) :: Digest a -> Digest a -> Bool # max :: Digest a -> Digest a -> Digest a # min :: Digest a -> Digest a -> Digest a #
Show (Digest a) Source # |
Methods showsPrec :: Int -> Digest a -> ShowS # show :: Digest a -> String # showList :: [Digest a] -> ShowS #
Byteable (Digest a) Source # |
Methods toBytes :: Digest a -> ByteString # byteableLength :: Digest a -> Int # withBytePtr :: Digest a -> (Ptr Word8 -> IO b) -> IO b #

# Functions

digestToByteString :: Digest a -> ByteString Source #

Deprecated: use toBytes from byteable:Data.Byteable

return the binary bytestring. deprecated use toBytes.

digestToHexByteString :: Digest a -> ByteString Source #

Return the hexadecimal (base16) bytestring of the digest

hash :: HashAlgorithm a => ByteString -> Digest a Source #

Hash a strict bytestring into a digest.

hashlazy :: HashAlgorithm a => ByteString -> Digest a Source #

Hash a lazy bytestring into a digest.

hashUpdate :: HashAlgorithm a => Context a -> ByteString -> Context a Source #

run hashUpdates on one single bytestring and return the updated context.

hashInitAlg :: HashAlgorithm alg => alg -> Context alg Source #

Initialize a new context for a specified hash algorithm

# hash algorithms

data MD2 :: * #

MD2 cryptographic hash algorithm

Constructors

MD2 |

Instances

Data MD2 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MD2 -> c MD2 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MD2 #

toConstr :: MD2 -> Constr #

dataTypeOf :: MD2 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c MD2) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MD2) #

gmapT :: (forall b. Data b => b -> b) -> MD2 -> MD2 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MD2 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MD2 -> r #

gmapQ :: (forall d. Data d => d -> u) -> MD2 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> MD2 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MD2 -> m MD2 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MD2 -> m MD2 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MD2 -> m MD2 #

Show MD2 |
Methods showsPrec :: Int -> MD2 -> ShowS # show :: MD2 -> String # showList :: [MD2] -> ShowS #
HashAlgorithm MD2 |
Methods hashBlockSize :: MD2 -> Int # hashDigestSize :: MD2 -> Int # hashInternalContextSize :: MD2 -> Int # hashInternalInit :: Ptr (Context MD2) -> IO () # hashInternalUpdate :: Ptr (Context MD2) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context MD2) -> Ptr (Digest MD2) -> IO () #
HashAlgorithm MD2 Source # | MD2 cryptographic hash
Methods hashBlockSize :: Context MD2 -> Int Source # hashInit :: Context MD2 Source # hashUpdates :: Context MD2 -> [ByteString] -> Context MD2 Source # hashFinalize :: Context MD2 -> Digest MD2 Source # digestFromByteString :: ByteString -> Maybe (Digest MD2) Source #

data MD4 :: * #

MD4 cryptographic hash algorithm

Constructors

MD4 |

Instances

Data MD4 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MD4 -> c MD4 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MD4 #

toConstr :: MD4 -> Constr #

dataTypeOf :: MD4 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c MD4) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MD4) #

gmapT :: (forall b. Data b => b -> b) -> MD4 -> MD4 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MD4 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MD4 -> r #

gmapQ :: (forall d. Data d => d -> u) -> MD4 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> MD4 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MD4 -> m MD4 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MD4 -> m MD4 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MD4 -> m MD4 #

Show MD4 |
Methods showsPrec :: Int -> MD4 -> ShowS # show :: MD4 -> String # showList :: [MD4] -> ShowS #
HashAlgorithm MD4 |
Methods hashBlockSize :: MD4 -> Int # hashDigestSize :: MD4 -> Int # hashInternalContextSize :: MD4 -> Int # hashInternalInit :: Ptr (Context MD4) -> IO () # hashInternalUpdate :: Ptr (Context MD4) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context MD4) -> Ptr (Digest MD4) -> IO () #
HashAlgorithm MD4 Source # | MD4 cryptographic hash
Methods hashBlockSize :: Context MD4 -> Int Source # hashInit :: Context MD4 Source # hashUpdates :: Context MD4 -> [ByteString] -> Context MD4 Source # hashFinalize :: Context MD4 -> Digest MD4 Source # digestFromByteString :: ByteString -> Maybe (Digest MD4) Source #

data MD5 :: * #

MD5 cryptographic hash algorithm

Constructors

MD5 |

Instances

Data MD5 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MD5 -> c MD5 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MD5 #

toConstr :: MD5 -> Constr #

dataTypeOf :: MD5 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c MD5) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MD5) #

gmapT :: (forall b. Data b => b -> b) -> MD5 -> MD5 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MD5 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MD5 -> r #

gmapQ :: (forall d. Data d => d -> u) -> MD5 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> MD5 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MD5 -> m MD5 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MD5 -> m MD5 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MD5 -> m MD5 #

Show MD5 |
Methods showsPrec :: Int -> MD5 -> ShowS # show :: MD5 -> String # showList :: [MD5] -> ShowS #
HashAlgorithm MD5 |
Methods hashBlockSize :: MD5 -> Int # hashDigestSize :: MD5 -> Int # hashInternalContextSize :: MD5 -> Int # hashInternalInit :: Ptr (Context MD5) -> IO () # hashInternalUpdate :: Ptr (Context MD5) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context MD5) -> Ptr (Digest MD5) -> IO () #
HashAlgorithm MD5 Source # | MD5 cryptographic hash
Methods hashBlockSize :: Context MD5 -> Int Source # hashInit :: Context MD5 Source # hashUpdates :: Context MD5 -> [ByteString] -> Context MD5 Source # hashFinalize :: Context MD5 -> Digest MD5 Source # digestFromByteString :: ByteString -> Maybe (Digest MD5) Source #

data SHA1 :: * #

SHA1 cryptographic hash algorithm

Constructors

SHA1 |

Instances

Data SHA1 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA1 -> c SHA1 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA1 #

toConstr :: SHA1 -> Constr #

dataTypeOf :: SHA1 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA1) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA1) #

gmapT :: (forall b. Data b => b -> b) -> SHA1 -> SHA1 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA1 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA1 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA1 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA1 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA1 -> m SHA1 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA1 -> m SHA1 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA1 -> m SHA1 #

Show SHA1 |
Methods showsPrec :: Int -> SHA1 -> ShowS # show :: SHA1 -> String # showList :: [SHA1] -> ShowS #
HashAlgorithm SHA1 |
Methods hashBlockSize :: SHA1 -> Int # hashDigestSize :: SHA1 -> Int # hashInternalContextSize :: SHA1 -> Int # hashInternalInit :: Ptr (Context SHA1) -> IO () # hashInternalUpdate :: Ptr (Context SHA1) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA1) -> Ptr (Digest SHA1) -> IO () #
HashAlgorithm SHA1 Source # | SHA1 cryptographic hash
Methods hashBlockSize :: Context SHA1 -> Int Source # hashInit :: Context SHA1 Source # hashUpdates :: Context SHA1 -> [ByteString] -> Context SHA1 Source # hashFinalize :: Context SHA1 -> Digest SHA1 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA1) Source #

data SHA224 :: * #

SHA224 cryptographic hash algorithm

Constructors

SHA224 |

Instances

Data SHA224 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA224 -> c SHA224 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA224 #

toConstr :: SHA224 -> Constr #

dataTypeOf :: SHA224 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA224) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA224) #

gmapT :: (forall b. Data b => b -> b) -> SHA224 -> SHA224 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA224 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA224 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA224 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA224 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA224 -> m SHA224 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA224 -> m SHA224 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA224 -> m SHA224 #

Show SHA224 |
Methods showsPrec :: Int -> SHA224 -> ShowS # show :: SHA224 -> String # showList :: [SHA224] -> ShowS #
HashAlgorithm SHA224 |
Methods hashBlockSize :: SHA224 -> Int # hashDigestSize :: SHA224 -> Int # hashInternalContextSize :: SHA224 -> Int # hashInternalInit :: Ptr (Context SHA224) -> IO () # hashInternalUpdate :: Ptr (Context SHA224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA224) -> Ptr (Digest SHA224) -> IO () #
HashAlgorithm SHA224 Source # | SHA224 cryptographic hash
Methods hashBlockSize :: Context SHA224 -> Int Source # hashInit :: Context SHA224 Source # hashUpdates :: Context SHA224 -> [ByteString] -> Context SHA224 Source # hashFinalize :: Context SHA224 -> Digest SHA224 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA224) Source #

data SHA256 :: * #

SHA256 cryptographic hash algorithm

Constructors

SHA256 |

Instances

Data SHA256 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA256 -> c SHA256 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA256 #

toConstr :: SHA256 -> Constr #

dataTypeOf :: SHA256 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA256) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA256) #

gmapT :: (forall b. Data b => b -> b) -> SHA256 -> SHA256 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA256 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA256 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA256 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA256 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA256 -> m SHA256 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA256 -> m SHA256 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA256 -> m SHA256 #

Show SHA256 |
Methods showsPrec :: Int -> SHA256 -> ShowS # show :: SHA256 -> String # showList :: [SHA256] -> ShowS #
HashAlgorithm SHA256 |
Methods hashBlockSize :: SHA256 -> Int # hashDigestSize :: SHA256 -> Int # hashInternalContextSize :: SHA256 -> Int # hashInternalInit :: Ptr (Context SHA256) -> IO () # hashInternalUpdate :: Ptr (Context SHA256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA256) -> Ptr (Digest SHA256) -> IO () #
HashAlgorithm SHA256 Source # | SHA256 cryptographic hash
Methods hashBlockSize :: Context SHA256 -> Int Source # hashInit :: Context SHA256 Source # hashUpdates :: Context SHA256 -> [ByteString] -> Context SHA256 Source # hashFinalize :: Context SHA256 -> Digest SHA256 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA256) Source #

data SHA384 :: * #

SHA384 cryptographic hash algorithm

Constructors

SHA384 |

Instances

Data SHA384 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA384 -> c SHA384 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA384 #

toConstr :: SHA384 -> Constr #

dataTypeOf :: SHA384 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA384) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA384) #

gmapT :: (forall b. Data b => b -> b) -> SHA384 -> SHA384 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA384 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA384 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA384 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA384 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA384 -> m SHA384 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA384 -> m SHA384 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA384 -> m SHA384 #

Show SHA384 |
Methods showsPrec :: Int -> SHA384 -> ShowS # show :: SHA384 -> String # showList :: [SHA384] -> ShowS #
HashAlgorithm SHA384 |
Methods hashBlockSize :: SHA384 -> Int # hashDigestSize :: SHA384 -> Int # hashInternalContextSize :: SHA384 -> Int # hashInternalInit :: Ptr (Context SHA384) -> IO () # hashInternalUpdate :: Ptr (Context SHA384) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA384) -> Ptr (Digest SHA384) -> IO () #
HashAlgorithm SHA384 Source # | SHA384 cryptographic hash
Methods hashBlockSize :: Context SHA384 -> Int Source # hashInit :: Context SHA384 Source # hashUpdates :: Context SHA384 -> [ByteString] -> Context SHA384 Source # hashFinalize :: Context SHA384 -> Digest SHA384 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA384) Source #

data SHA512 :: * #

SHA512 cryptographic hash algorithm

Constructors

SHA512 |

Instances

Data SHA512 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA512 -> c SHA512 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA512 #

toConstr :: SHA512 -> Constr #

dataTypeOf :: SHA512 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA512) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA512) #

gmapT :: (forall b. Data b => b -> b) -> SHA512 -> SHA512 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA512 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA512 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA512 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA512 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA512 -> m SHA512 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA512 -> m SHA512 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA512 -> m SHA512 #

Show SHA512 |
Methods showsPrec :: Int -> SHA512 -> ShowS # show :: SHA512 -> String # showList :: [SHA512] -> ShowS #
HashAlgorithm SHA512 |
Methods hashBlockSize :: SHA512 -> Int # hashDigestSize :: SHA512 -> Int # hashInternalContextSize :: SHA512 -> Int # hashInternalInit :: Ptr (Context SHA512) -> IO () # hashInternalUpdate :: Ptr (Context SHA512) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA512) -> Ptr (Digest SHA512) -> IO () #
HashAlgorithm SHA512 Source # | SHA512 cryptographic hash
Methods hashBlockSize :: Context SHA512 -> Int Source # hashInit :: Context SHA512 Source # hashUpdates :: Context SHA512 -> [ByteString] -> Context SHA512 Source # hashFinalize :: Context SHA512 -> Digest SHA512 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA512) Source #

data RIPEMD160 :: * #

RIPEMD160 cryptographic hash algorithm

Constructors

RIPEMD160 |

Instances

Data RIPEMD160 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RIPEMD160 -> c RIPEMD160 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RIPEMD160 #

toConstr :: RIPEMD160 -> Constr #

dataTypeOf :: RIPEMD160 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c RIPEMD160) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RIPEMD160) #

gmapT :: (forall b. Data b => b -> b) -> RIPEMD160 -> RIPEMD160 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RIPEMD160 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RIPEMD160 -> r #

gmapQ :: (forall d. Data d => d -> u) -> RIPEMD160 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RIPEMD160 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RIPEMD160 -> m RIPEMD160 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RIPEMD160 -> m RIPEMD160 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RIPEMD160 -> m RIPEMD160 #

Show RIPEMD160 |
Methods showsPrec :: Int -> RIPEMD160 -> ShowS # show :: RIPEMD160 -> String # showList :: [RIPEMD160] -> ShowS #
HashAlgorithm RIPEMD160 |
Methods hashBlockSize :: RIPEMD160 -> Int # hashDigestSize :: RIPEMD160 -> Int # hashInternalContextSize :: RIPEMD160 -> Int # hashInternalInit :: Ptr (Context RIPEMD160) -> IO () # hashInternalUpdate :: Ptr (Context RIPEMD160) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context RIPEMD160) -> Ptr (Digest RIPEMD160) -> IO () #
HashAlgorithm RIPEMD160 Source # | RIPEMD160 cryptographic hash
Methods hashBlockSize :: Context RIPEMD160 -> Int Source # hashInit :: Context RIPEMD160 Source # hashUpdates :: Context RIPEMD160 -> [ByteString] -> Context RIPEMD160 Source # hashFinalize :: Context RIPEMD160 -> Digest RIPEMD160 Source # digestFromByteString :: ByteString -> Maybe (Digest RIPEMD160) Source #

data Tiger :: * #

Tiger cryptographic hash algorithm

Constructors

Tiger |

Instances

Data Tiger |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Tiger -> c Tiger #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Tiger #

toConstr :: Tiger -> Constr #

dataTypeOf :: Tiger -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Tiger) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Tiger) #

gmapT :: (forall b. Data b => b -> b) -> Tiger -> Tiger #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tiger -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tiger -> r #

gmapQ :: (forall d. Data d => d -> u) -> Tiger -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Tiger -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tiger -> m Tiger #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tiger -> m Tiger #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tiger -> m Tiger #

Show Tiger |
Methods showsPrec :: Int -> Tiger -> ShowS # show :: Tiger -> String # showList :: [Tiger] -> ShowS #
HashAlgorithm Tiger |
Methods hashBlockSize :: Tiger -> Int # hashDigestSize :: Tiger -> Int # hashInternalContextSize :: Tiger -> Int # hashInternalInit :: Ptr (Context Tiger) -> IO () # hashInternalUpdate :: Ptr (Context Tiger) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Tiger) -> Ptr (Digest Tiger) -> IO () #
HashAlgorithm Tiger Source # | Tiger cryptographic hash
Methods hashBlockSize :: Context Tiger -> Int Source # hashInit :: Context Tiger Source # hashUpdates :: Context Tiger -> [ByteString] -> Context Tiger Source # hashFinalize :: Context Tiger -> Digest Tiger Source # digestFromByteString :: ByteString -> Maybe (Digest Tiger) Source #

data SHA3_224 :: * #

SHA3 (224 bits) cryptographic hash algorithm

Constructors

SHA3_224 |

Instances

Data SHA3_224 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_224 -> c SHA3_224 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_224 #

toConstr :: SHA3_224 -> Constr #

dataTypeOf :: SHA3_224 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_224) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_224) #

gmapT :: (forall b. Data b => b -> b) -> SHA3_224 -> SHA3_224 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_224 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_224 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA3_224 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_224 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_224 -> m SHA3_224 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_224 -> m SHA3_224 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_224 -> m SHA3_224 #

Show SHA3_224 |
Methods showsPrec :: Int -> SHA3_224 -> ShowS # show :: SHA3_224 -> String # showList :: [SHA3_224] -> ShowS #
HashAlgorithm SHA3_224 |
Methods hashBlockSize :: SHA3_224 -> Int # hashDigestSize :: SHA3_224 -> Int # hashInternalContextSize :: SHA3_224 -> Int # hashInternalInit :: Ptr (Context SHA3_224) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_224) -> Ptr (Digest SHA3_224) -> IO () #
HashAlgorithm SHA3_224 Source # | SHA3 (224 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_224 -> Int Source # hashInit :: Context SHA3_224 Source # hashUpdates :: Context SHA3_224 -> [ByteString] -> Context SHA3_224 Source # hashFinalize :: Context SHA3_224 -> Digest SHA3_224 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_224) Source #

data SHA3_256 :: * #

SHA3 (256 bits) cryptographic hash algorithm

Constructors

SHA3_256 |

Instances

Data SHA3_256 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_256 -> c SHA3_256 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_256 #

toConstr :: SHA3_256 -> Constr #

dataTypeOf :: SHA3_256 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_256) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_256) #

gmapT :: (forall b. Data b => b -> b) -> SHA3_256 -> SHA3_256 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_256 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_256 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA3_256 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_256 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_256 -> m SHA3_256 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_256 -> m SHA3_256 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_256 -> m SHA3_256 #

Show SHA3_256 |
Methods showsPrec :: Int -> SHA3_256 -> ShowS # show :: SHA3_256 -> String # showList :: [SHA3_256] -> ShowS #
HashAlgorithm SHA3_256 |
Methods hashBlockSize :: SHA3_256 -> Int # hashDigestSize :: SHA3_256 -> Int # hashInternalContextSize :: SHA3_256 -> Int # hashInternalInit :: Ptr (Context SHA3_256) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_256) -> Ptr (Digest SHA3_256) -> IO () #
HashAlgorithm SHA3_256 Source # | SHA3 (256 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_256 -> Int Source # hashInit :: Context SHA3_256 Source # hashUpdates :: Context SHA3_256 -> [ByteString] -> Context SHA3_256 Source # hashFinalize :: Context SHA3_256 -> Digest SHA3_256 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_256) Source #

data SHA3_384 :: * #

SHA3 (384 bits) cryptographic hash algorithm

Constructors

SHA3_384 |

Instances

Data SHA3_384 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_384 -> c SHA3_384 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_384 #

toConstr :: SHA3_384 -> Constr #

dataTypeOf :: SHA3_384 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_384) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_384) #

gmapT :: (forall b. Data b => b -> b) -> SHA3_384 -> SHA3_384 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_384 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_384 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA3_384 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_384 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_384 -> m SHA3_384 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_384 -> m SHA3_384 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_384 -> m SHA3_384 #

Show SHA3_384 |
Methods showsPrec :: Int -> SHA3_384 -> ShowS # show :: SHA3_384 -> String # showList :: [SHA3_384] -> ShowS #
HashAlgorithm SHA3_384 |
Methods hashBlockSize :: SHA3_384 -> Int # hashDigestSize :: SHA3_384 -> Int # hashInternalContextSize :: SHA3_384 -> Int # hashInternalInit :: Ptr (Context SHA3_384) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_384) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_384) -> Ptr (Digest SHA3_384) -> IO () #
HashAlgorithm SHA3_384 Source # | SHA3 (384 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_384 -> Int Source # hashInit :: Context SHA3_384 Source # hashUpdates :: Context SHA3_384 -> [ByteString] -> Context SHA3_384 Source # hashFinalize :: Context SHA3_384 -> Digest SHA3_384 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_384) Source #

data SHA3_512 :: * #

SHA3 (512 bits) cryptographic hash algorithm

Constructors

SHA3_512 |

Instances

Data SHA3_512 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_512 -> c SHA3_512 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_512 #

toConstr :: SHA3_512 -> Constr #

dataTypeOf :: SHA3_512 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_512) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_512) #

gmapT :: (forall b. Data b => b -> b) -> SHA3_512 -> SHA3_512 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_512 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_512 -> r #

gmapQ :: (forall d. Data d => d -> u) -> SHA3_512 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_512 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_512 -> m SHA3_512 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_512 -> m SHA3_512 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_512 -> m SHA3_512 #

Show SHA3_512 |
Methods showsPrec :: Int -> SHA3_512 -> ShowS # show :: SHA3_512 -> String # showList :: [SHA3_512] -> ShowS #
HashAlgorithm SHA3_512 |
Methods hashBlockSize :: SHA3_512 -> Int # hashDigestSize :: SHA3_512 -> Int # hashInternalContextSize :: SHA3_512 -> Int # hashInternalInit :: Ptr (Context SHA3_512) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_512) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_512) -> Ptr (Digest SHA3_512) -> IO () #
HashAlgorithm SHA3_512 Source # | SHA3 (512 bits version) cryptographic hash
Methods hashBlockSize :: Context SHA3_512 -> Int Source # hashInit :: Context SHA3_512 Source # hashUpdates :: Context SHA3_512 -> [ByteString] -> Context SHA3_512 Source # hashFinalize :: Context SHA3_512 -> Digest SHA3_512 Source # digestFromByteString :: ByteString -> Maybe (Digest SHA3_512) Source #

data Skein256_224 :: * #

Skein256 (224 bits) cryptographic hash algorithm

Constructors

Skein256_224 |

Instances

Data Skein256_224 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Skein256_224 -> c Skein256_224 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Skein256_224 #

toConstr :: Skein256_224 -> Constr #

dataTypeOf :: Skein256_224 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Skein256_224) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Skein256_224) #

gmapT :: (forall b. Data b => b -> b) -> Skein256_224 -> Skein256_224 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Skein256_224 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Skein256_224 -> r #

gmapQ :: (forall d. Data d => d -> u) -> Skein256_224 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Skein256_224 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Skein256_224 -> m Skein256_224 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein256_224 -> m Skein256_224 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein256_224 -> m Skein256_224 #

Show Skein256_224 |
Methods showsPrec :: Int -> Skein256_224 -> ShowS # show :: Skein256_224 -> String # showList :: [Skein256_224] -> ShowS #
HashAlgorithm Skein256_224 |
Methods hashBlockSize :: Skein256_224 -> Int # hashDigestSize :: Skein256_224 -> Int # hashInternalContextSize :: Skein256_224 -> Int # hashInternalInit :: Ptr (Context Skein256_224) -> IO () # hashInternalUpdate :: Ptr (Context Skein256_224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Skein256_224) -> Ptr (Digest Skein256_224) -> IO () #
HashAlgorithm Skein256_224 Source # | Skein256 (224 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein256_224 -> Int Source # hashInit :: Context Skein256_224 Source # hashUpdates :: Context Skein256_224 -> [ByteString] -> Context Skein256_224 Source # hashFinalize :: Context Skein256_224 -> Digest Skein256_224 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein256_224) Source #

data Skein256_256 :: * #

Skein256 (256 bits) cryptographic hash algorithm

Constructors

Skein256_256 |

Instances

Data Skein256_256 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Skein256_256 -> c Skein256_256 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Skein256_256 #

toConstr :: Skein256_256 -> Constr #

dataTypeOf :: Skein256_256 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Skein256_256) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Skein256_256) #

gmapT :: (forall b. Data b => b -> b) -> Skein256_256 -> Skein256_256 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Skein256_256 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Skein256_256 -> r #

gmapQ :: (forall d. Data d => d -> u) -> Skein256_256 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Skein256_256 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Skein256_256 -> m Skein256_256 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein256_256 -> m Skein256_256 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein256_256 -> m Skein256_256 #

Show Skein256_256 |
Methods showsPrec :: Int -> Skein256_256 -> ShowS # show :: Skein256_256 -> String # showList :: [Skein256_256] -> ShowS #
HashAlgorithm Skein256_256 |
Methods hashBlockSize :: Skein256_256 -> Int # hashDigestSize :: Skein256_256 -> Int # hashInternalContextSize :: Skein256_256 -> Int # hashInternalInit :: Ptr (Context Skein256_256) -> IO () # hashInternalUpdate :: Ptr (Context Skein256_256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Skein256_256) -> Ptr (Digest Skein256_256) -> IO () #
HashAlgorithm Skein256_256 Source # | Skein256 (256 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein256_256 -> Int Source # hashInit :: Context Skein256_256 Source # hashUpdates :: Context Skein256_256 -> [ByteString] -> Context Skein256_256 Source # hashFinalize :: Context Skein256_256 -> Digest Skein256_256 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein256_256) Source #

data Skein512_224 :: * #

Skein512 (224 bits) cryptographic hash algorithm

Constructors

Skein512_224 |

Instances

Data Skein512_224 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Skein512_224 -> c Skein512_224 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Skein512_224 #

toConstr :: Skein512_224 -> Constr #

dataTypeOf :: Skein512_224 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Skein512_224) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Skein512_224) #

gmapT :: (forall b. Data b => b -> b) -> Skein512_224 -> Skein512_224 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_224 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_224 -> r #

gmapQ :: (forall d. Data d => d -> u) -> Skein512_224 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Skein512_224 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Skein512_224 -> m Skein512_224 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_224 -> m Skein512_224 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_224 -> m Skein512_224 #

Show Skein512_224 |
Methods showsPrec :: Int -> Skein512_224 -> ShowS # show :: Skein512_224 -> String # showList :: [Skein512_224] -> ShowS #
HashAlgorithm Skein512_224 |
Methods hashBlockSize :: Skein512_224 -> Int # hashDigestSize :: Skein512_224 -> Int # hashInternalContextSize :: Skein512_224 -> Int # hashInternalInit :: Ptr (Context Skein512_224) -> IO () # hashInternalUpdate :: Ptr (Context Skein512_224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Skein512_224) -> Ptr (Digest Skein512_224) -> IO () #
HashAlgorithm Skein512_224 Source # | Skein512 (224 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_224 -> Int Source # hashInit :: Context Skein512_224 Source # hashUpdates :: Context Skein512_224 -> [ByteString] -> Context Skein512_224 Source # hashFinalize :: Context Skein512_224 -> Digest Skein512_224 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_224) Source #

data Skein512_256 :: * #

Skein512 (256 bits) cryptographic hash algorithm

Constructors

Skein512_256 |

Instances

Data Skein512_256 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Skein512_256 -> c Skein512_256 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Skein512_256 #

toConstr :: Skein512_256 -> Constr #

dataTypeOf :: Skein512_256 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Skein512_256) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Skein512_256) #

gmapT :: (forall b. Data b => b -> b) -> Skein512_256 -> Skein512_256 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_256 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_256 -> r #

gmapQ :: (forall d. Data d => d -> u) -> Skein512_256 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Skein512_256 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Skein512_256 -> m Skein512_256 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_256 -> m Skein512_256 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_256 -> m Skein512_256 #

Show Skein512_256 |
Methods showsPrec :: Int -> Skein512_256 -> ShowS # show :: Skein512_256 -> String # showList :: [Skein512_256] -> ShowS #
HashAlgorithm Skein512_256 |
Methods hashBlockSize :: Skein512_256 -> Int # hashDigestSize :: Skein512_256 -> Int # hashInternalContextSize :: Skein512_256 -> Int # hashInternalInit :: Ptr (Context Skein512_256) -> IO () # hashInternalUpdate :: Ptr (Context Skein512_256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Skein512_256) -> Ptr (Digest Skein512_256) -> IO () #
HashAlgorithm Skein512_256 Source # | Skein512 (256 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_256 -> Int Source # hashInit :: Context Skein512_256 Source # hashUpdates :: Context Skein512_256 -> [ByteString] -> Context Skein512_256 Source # hashFinalize :: Context Skein512_256 -> Digest Skein512_256 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_256) Source #

data Skein512_384 :: * #

Skein512 (384 bits) cryptographic hash algorithm

Constructors

Skein512_384 |

Instances

Data Skein512_384 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Skein512_384 -> c Skein512_384 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Skein512_384 #

toConstr :: Skein512_384 -> Constr #

dataTypeOf :: Skein512_384 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Skein512_384) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Skein512_384) #

gmapT :: (forall b. Data b => b -> b) -> Skein512_384 -> Skein512_384 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_384 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_384 -> r #

gmapQ :: (forall d. Data d => d -> u) -> Skein512_384 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Skein512_384 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Skein512_384 -> m Skein512_384 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_384 -> m Skein512_384 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_384 -> m Skein512_384 #

Show Skein512_384 |
Methods showsPrec :: Int -> Skein512_384 -> ShowS # show :: Skein512_384 -> String # showList :: [Skein512_384] -> ShowS #
HashAlgorithm Skein512_384 |
Methods hashBlockSize :: Skein512_384 -> Int # hashDigestSize :: Skein512_384 -> Int # hashInternalContextSize :: Skein512_384 -> Int # hashInternalInit :: Ptr (Context Skein512_384) -> IO () # hashInternalUpdate :: Ptr (Context Skein512_384) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Skein512_384) -> Ptr (Digest Skein512_384) -> IO () #
HashAlgorithm Skein512_384 Source # | Skein512 (384 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_384 -> Int Source # hashInit :: Context Skein512_384 Source # hashUpdates :: Context Skein512_384 -> [ByteString] -> Context Skein512_384 Source # hashFinalize :: Context Skein512_384 -> Digest Skein512_384 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_384) Source #

data Skein512_512 :: * #

Skein512 (512 bits) cryptographic hash algorithm

Constructors

Skein512_512 |

Instances

Data Skein512_512 |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Skein512_512 -> c Skein512_512 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Skein512_512 #

toConstr :: Skein512_512 -> Constr #

dataTypeOf :: Skein512_512 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Skein512_512) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Skein512_512) #

gmapT :: (forall b. Data b => b -> b) -> Skein512_512 -> Skein512_512 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_512 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Skein512_512 -> r #

gmapQ :: (forall d. Data d => d -> u) -> Skein512_512 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Skein512_512 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Skein512_512 -> m Skein512_512 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_512 -> m Skein512_512 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Skein512_512 -> m Skein512_512 #

Show Skein512_512 |
Methods showsPrec :: Int -> Skein512_512 -> ShowS # show :: Skein512_512 -> String # showList :: [Skein512_512] -> ShowS #
HashAlgorithm Skein512_512 |
Methods hashBlockSize :: Skein512_512 -> Int # hashDigestSize :: Skein512_512 -> Int # hashInternalContextSize :: Skein512_512 -> Int # hashInternalInit :: Ptr (Context Skein512_512) -> IO () # hashInternalUpdate :: Ptr (Context Skein512_512) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Skein512_512) -> Ptr (Digest Skein512_512) -> IO () #
HashAlgorithm Skein512_512 Source # | Skein512 (512 bits version) cryptographic hash
Methods hashBlockSize :: Context Skein512_512 -> Int Source # hashInit :: Context Skein512_512 Source # hashUpdates :: Context Skein512_512 -> [ByteString] -> Context Skein512_512 Source # hashFinalize :: Context Skein512_512 -> Digest Skein512_512 Source # digestFromByteString :: ByteString -> Maybe (Digest Skein512_512) Source #

data Whirlpool :: * #

Whirlpool cryptographic hash algorithm

Constructors

Whirlpool |

Instances

Data Whirlpool |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Whirlpool -> c Whirlpool #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Whirlpool #

toConstr :: Whirlpool -> Constr #

dataTypeOf :: Whirlpool -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Whirlpool) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Whirlpool) #

gmapT :: (forall b. Data b => b -> b) -> Whirlpool -> Whirlpool #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Whirlpool -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Whirlpool -> r #

gmapQ :: (forall d. Data d => d -> u) -> Whirlpool -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Whirlpool -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Whirlpool -> m Whirlpool #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Whirlpool -> m Whirlpool #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Whirlpool -> m Whirlpool #

Show Whirlpool |
Methods showsPrec :: Int -> Whirlpool -> ShowS # show :: Whirlpool -> String # showList :: [Whirlpool] -> ShowS #
HashAlgorithm Whirlpool |
Methods hashBlockSize :: Whirlpool -> Int # hashDigestSize :: Whirlpool -> Int # hashInternalContextSize :: Whirlpool -> Int # hashInternalInit :: Ptr (Context Whirlpool) -> IO () # hashInternalUpdate :: Ptr (Context Whirlpool) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Whirlpool) -> Ptr (Digest Whirlpool) -> IO () #
HashAlgorithm Whirlpool Source # | Whirlpool cryptographic hash
Methods hashBlockSize :: Context Whirlpool -> Int Source # hashInit :: Context Whirlpool Source # hashUpdates :: Context Whirlpool -> [ByteString] -> Context Whirlpool Source # hashFinalize :: Context Whirlpool -> Digest Whirlpool Source # digestFromByteString :: ByteString -> Maybe (Digest Whirlpool) Source #

# MAC algorithms

newtype HMAC a Source #

Represent an HMAC that is a phantom type with the hash used to produce the mac.

The Eq instance is constant time.

Constructors

HMAC |

Fields

- hmacGetDigest :: Digest a

Instances

Eq (HMAC a) Source # |
Methods (==) :: HMAC a -> HMAC a -> Bool # (/=) :: HMAC a -> HMAC a -> Bool #
Byteable (HMAC a) Source # |
Methods toBytes :: HMAC a -> ByteString # byteableLength :: HMAC a -> Int # withBytePtr :: HMAC a -> (Ptr Word8 -> IO b) -> IO b #

hmac Source #

Arguments

:: HashAlgorithm a |
=> ByteString | Secret key
-> ByteString | Message to MAC
-> HMAC a |

compute a MAC using the supplied hashing function

hmacAlg Source #

Arguments

:: HashAlgorithm a |
=> a | the hash algorithm the actual value is unused.
-> ByteString | Secret key
-> ByteString | Message to MAC
-> HMAC a |

compute a HMAC using a specified algorithm