cryptohash-0.11.6: 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.MAC

Contents

- MAC algorithms
  - Incremental MAC algorithms

Description

Crypto hash generic MAC (Message Authentification Code) module

Synopsis

- newtype HMAC a = HMAC {
  - hmacGetDigest :: Digest a
  }
- hmac :: HashAlgorithm a => ByteString -> ByteString -> HMAC a
- hmacAlg :: HashAlgorithm a => a -> ByteString -> ByteString -> HMAC a
- data HMACContext hashalg
- hmacInit :: HashAlgorithm a => ByteString -> HMACContext a
- hmacInitAlg :: HashAlgorithm a => a -> ByteString -> HMACContext a
- hmacUpdate :: HashAlgorithm a => HMACContext a -> ByteString -> HMACContext a
- hmacFinalize :: HashAlgorithm a => HMACContext a -> HMAC a

# 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 |
Byteable (HMAC a) Source |

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

## Incremental MAC algorithms

data HMACContext hashalg Source

Represent an ongoing HMAC state, that can be appended with `hmacUpdate` and finalize to an HMAC with `hmacFinalize`

hmacInit Source

Arguments

:: HashAlgorithm a |
=> ByteString | Secret key
-> HMACContext a |

Initialize a new incremental HMAC context

hmacInitAlg Source

Arguments

:: HashAlgorithm a |
=> a | the hash algorithm the actual value is unused.
-> ByteString | Secret key
-> HMACContext a |

Initialize a new incremental HMAC context with a given hash algorithm.

hmacUpdate Source

Arguments

:: HashAlgorithm a |
=> HMACContext a |
-> ByteString | Message to Mac
-> HMACContext a |

Incrementally update a HMAC context

hmacFinalize :: HashAlgorithm a => HMACContext a -> HMAC a Source

Finalize a HMAC context and return the HMAC.