cryptonite-0.27: Cryptography Primitives sink
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

Synopsis

Documentation

hmac Source #

Arguments

:: ( ByteArrayAccess key, ByteArrayAccess message, HashAlgorithm a)
=> key

Secret key

-> message

Message to MAC

-> HMAC a

compute a MAC using the supplied hashing function

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. No Show instance is provided, to avoid printing by mistake.

Constructors

HMAC

Incremental

data Context hashalg Source #

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

Constructors

Context !( Context hashalg) !( Context hashalg)

initialize Source #

Arguments

:: ( ByteArrayAccess key, HashAlgorithm a)
=> key

Secret key

-> Context a

Initialize a new incremental HMAC context

update Source #

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

updates Source #

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

finalize :: HashAlgorithm a => Context a -> HMAC a Source #

Finalize a HMAC context and return the HMAC.