License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Provide the HMAC (Hash based Message Authentification Code) base algorithm. http://en.wikipedia.org/wiki/HMAC
Synopsis
- 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
:: ( 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. No Show instance is provided, to avoid printing by mistake.
HMAC | |
|
Incremental
Represent an ongoing HMAC state, that can be appended with
update
and finalize to an HMAC with
hmacFinalize
:: ( ByteArrayAccess key, HashAlgorithm a) | |
=> key |
Secret key |
-> Context a |
Initialize a new incremental HMAC context
:: ( 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
:: ( 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