cryptohash-0.11.9: collection of crypto hashes, fast, pure and practical

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellTrustworthy
LanguageHaskell98

Crypto.MAC

Contents

Description

Crypto hash generic MAC (Message Authentification Code) module

Synopsis

MAC algorithms

newtype HMAC a #

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

Instances

Eq (HMAC a) # 

Methods

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

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

Byteable (HMAC a) # 

Methods

toBytes :: HMAC a -> ByteString #

byteableLength :: HMAC a -> Int #

withBytePtr :: HMAC a -> (Ptr Word8 -> IO b) -> IO b #

hmac #

Arguments

:: HashAlgorithm a 
=> ByteString

Secret key

-> ByteString

Message to MAC

-> HMAC a 

compute a MAC using the supplied hashing function

hmacAlg #

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 #

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

hmacInit #

Arguments

:: HashAlgorithm a 
=> ByteString

Secret key

-> HMACContext a 

Initialize a new incremental HMAC context

hmacInitAlg #

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 #

Arguments

:: HashAlgorithm a 
=> HMACContext a 
-> ByteString

Message to Mac

-> HMACContext a 

Incrementally update a HMAC context

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

Finalize a HMAC context and return the HMAC.