nettle-0.3.0: safe nettle binding

Copyright(c) 2013 Stefan Bühler
LicenseMIT-style (see the file COPYING)
Maintainerstbuehler@web.de
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Crypto.Nettle.HMAC

Description

Generic HMAC implementation based on the HashAlgorithm class, implementing the KeyedHashAlgorithm class.

Synopsis

Documentation

hmacInit Source #

Arguments

:: HashAlgorithm a 
=> ByteString

key argument

-> Tagged a KeyedHash 

hmacInit is the default implementation for hashHMAC and initializes a KeyedHash to calculate the HMAC for a message with the given key.

Example:

let c = untag (hmacInit (fromString "secretkey") :: Tagged SHA256 KeyedHash) in keyedHashFinalize $ keyedHashUpdate c (fromString "secret message")

hmacInit' :: HashAlgorithm a => a -> ByteString -> KeyedHash Source #

Untagged variant of hmacInit; takes a (possible undefined) typed HashAlgorithm context as parameter.

Example:

keyedHashFinalize $ flip keyedHashUpdate (fromString "secret message") $ hmacInit' (undefined :: SHA256) (fromString "secretkey")

hmac Source #

Arguments

:: HashAlgorithm a 
=> ByteString

key argument

-> ByteString

message argument

-> Tagged a ByteString 

calculate HMAC with a HashAlgorithm for a key and message

Example:

untag (hmac (fromString "secretkey") (fromString "secret message") :: Tagged SHA256 B.ByteString)

hmac' :: HashAlgorithm a => a -> ByteString -> ByteString -> ByteString Source #

Untagged variant of hmac; takes a (possible undefined) typed HashAlgorithm context as parameter.

Example:

hmac' (undefined :: SHA256) (fromString "secretkey") (fromString "secret message")

hmacLazy Source #

Arguments

:: HashAlgorithm a 
=> ByteString

key argument

-> ByteString

message argument

-> Tagged a ByteString 

calculate HMAC with a HashAlgorithm for a key and lazy message

Example:

untag (hmacLazy (fromString "secretkey") (fromString "secret message") :: Tagged SHA256 B.ByteString)

hmacLazy' :: HashAlgorithm a => a -> ByteString -> ByteString -> ByteString Source #

Untagged variant of hmacLazy; takes a (possible undefined) typed HashAlgorithm context as parameter.

Example:

hmacLazy' (undefined :: SHA256) (fromString "secretkey") (fromString "secret message")