cryptonite-0.30: Cryptography Primitives sink
LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

hmacLazy Source #

Arguments

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

Secret key

-> ByteString

Message to MAC

-> HMAC a 

Compute a MAC using the supplied hashing function, for a lazy input

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 

Fields

Instances

Instances details
Eq (HMAC a) Source # 
Instance details

Defined in Crypto.MAC.HMAC

Methods

(==) :: HMAC a -> HMAC a -> Bool #

(/=) :: HMAC a -> HMAC a -> Bool #

ByteArrayAccess (HMAC a) Source # 
Instance details

Defined in Crypto.MAC.HMAC

Methods

length :: HMAC a -> Int Source #

withByteArray :: HMAC a -> (Ptr p -> IO a0) -> IO a0 Source #

copyByteArrayToPtr :: HMAC a -> Ptr p -> IO () Source #

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.