| License | BSD-style |
|---|---|
| Maintainer | Vincent Hanquez <vincent@snarc.org> |
| Stability | experimental |
| Portability | unknown |
| Safe Haskell | None |
| Language | Haskell2010 |
Crypto.MAC.HMAC
Contents
Description
provide the HMAC (Hash based Message Authentification Code) base algorithm. http://en.wikipedia.org/wiki/HMAC
- hmac :: (ByteArrayAccess key, ByteArrayAccess message, HashAlgorithm a) => key -> message -> HMAC a
- newtype HMAC a = HMAC {
- hmacGetDigest :: Digest a
- data Context hashalg = Context !(Context hashalg) !(Context hashalg)
- initialize :: (ByteArrayAccess key, HashAlgorithm a) => key -> Context a
- update :: (ByteArrayAccess message, HashAlgorithm a) => Context a -> message -> Context a
- updates :: (ByteArrayAccess message, HashAlgorithm a) => Context a -> [message] -> Context a
- finalize :: HashAlgorithm a => Context a -> HMAC a
Documentation
Arguments
| :: (ByteArrayAccess key, ByteArrayAccess message, HashAlgorithm a) | |
| => key | Secret key |
| -> message | Message to MAC |
| -> HMAC a |
compute a MAC using the supplied hashing function
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
| |
incremental
Represent an ongoing HMAC state, that can be appended with update
and finalize to an HMAC with hmacFinalize
Arguments
| :: (ByteArrayAccess key, HashAlgorithm a) | |
| => key | Secret key |
| -> Context a |
Initialize a new incremental HMAC context
Arguments
| :: (ByteArrayAccess message, HashAlgorithm a) | |
| => Context a | Current HMAC context |
| -> message | Message to append to the MAC |
| -> Context a | Updated HMAC context |
Incrementally update a HMAC context
Arguments
| :: (ByteArrayAccess message, HashAlgorithm a) | |
| => Context a | Current HMAC context |
| -> [message] | Messages to append to the MAC |
| -> Context a | Updated HMAC context |
Increamentally update a HMAC context with multiple inputs