Portability | unknown |
---|---|
Stability | experimental |
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Safe Haskell | Trustworthy |
Crypto hash main module
- class HashAlgorithm a where
- hashInit :: Context a
- hashUpdates :: Context a -> [ByteString] -> Context a
- hashFinalize :: Context a -> Digest a
- digestFromByteString :: ByteString -> Maybe (Digest a)
- 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
- data MD2
- data MD4
- data MD5
- data SHA1
- data SHA224
- data SHA256
- data SHA384
- data SHA512
- data RIPEMD160
- data Tiger
- data SHA3_224
- data SHA3_256
- data SHA3_384
- data SHA3_512
- data Skein256_224
- data Skein256_256
- data Skein512_224
- data Skein512_256
- data Skein512_384
- data Skein512_512
- data Whirlpool
- data HMAC a = HMAC {}
- hmac :: HashFunctionBS a -> Int -> ByteString -> ByteString -> HMAC a
Types
class HashAlgorithm a whereSource
Class representing hashing algorithms.
The hash algorithm is built over 3 primitives:
init : create a new context updates : update the context with some strict bytestrings finalize : finalize the context into a digest
Initialize a new context for this hash algorithm
hashUpdates :: Context a -> [ByteString] -> Context aSource
Update the context with a list of strict bytestring, and return a new context with the updates.
hashFinalize :: Context a -> Digest aSource
Finalize a context and return a digest.
digestFromByteString :: ByteString -> Maybe (Digest a)Source
Try to convert a binary digest bytestring to a digest.
type HashFunctionBS a = ByteString -> Digest aSource
Alias to a single pass hash function that operate on a strict bytestring
type HashFunctionLBS a = ByteString -> Digest aSource
Alias to a single pass hash function that operate on a lazy bytestring
Represent a digest for a given hash algorithm.
Functions
digestToByteString :: Digest a -> ByteStringSource
Return the binary digest
digestToHexByteString :: Digest a -> ByteStringSource
Return the hexadecimal (base16) bytestring of the digest
hash :: HashAlgorithm a => ByteString -> Digest aSource
Hash a strict bytestring into a digest.
hashlazy :: HashAlgorithm a => ByteString -> Digest aSource
Hash a lazy bytestring into a digest.
hashUpdate :: HashAlgorithm a => Context a -> ByteString -> Context aSource
run hashUpdates on one single bytestring and return the updated context.
hash algorithms
MAC algorithms
Represent an HMAC that is phantom types with the hash used to produce the mac.
The Eq instance is constant time.
HMAC | |
|
:: HashFunctionBS a | Hash function to use |
-> Int | Block size in bytes of the hash function |
-> ByteString | Secret key |
-> ByteString | Message to MAC |
-> HMAC a |
compute a MAC using the supplied hashing function