ppad-sha512-0.1.0: The SHA-512 and HMAC-SHA512 algorithms
Copyright(c) 2024 Jared Tobin
LicenseMIT
MaintainerJared Tobin <jared@ppad.tech>
Safe HaskellSafe-Inferred
LanguageHaskell2010

Crypto.Hash.SHA512

Description

Pure SHA-512 and HMAC-SHA512 implementations for strict and lazy ByteStrings, as specified by RFC's 6234 and 2104.

Synopsis

SHA-512 message digest functions

hash :: ByteString -> ByteString Source #

Compute a condensed representation of a strict bytestring via SHA-512.

The 512-bit output digest is returned as a strict bytestring.

>>> hash "strict bytestring input"
"<strict 512-bit message digest>"

hash_lazy :: ByteString -> ByteString Source #

Compute a condensed representation of a lazy bytestring via SHA-512.

The 512-bit output digest is returned as a strict bytestring.

>>> hash_lazy "lazy bytestring input"
"<strict 512-bit message digest>"

SHA512-based MAC functions

hmac Source #

Arguments

:: ByteString

key

-> ByteString

text

-> ByteString 

Produce a message authentication code for a strict bytestring, based on the provided (strict, bytestring) key, via SHA-512.

The 512-bit MAC is returned as a strict bytestring.

Per RFC 2104, the key should be a minimum of 64 bytes long. Keys exceeding 1024 bytes in length will first be hashed (via SHA-512).

>>> hmac "strict bytestring key" "strict bytestring input"
"<strict 512-bit MAC>"

hmac_lazy Source #

Arguments

:: ByteString

key

-> ByteString

text

-> ByteString 

Produce a message authentication code for a lazy bytestring, based on the provided (strict, bytestring) key, via SHA-512.

The 512-bit MAC is returned as a strict bytestring.

Per RFC 2104, the key should be a minimum of 64 bytes long. Keys exceeding 1024 bytes in length will first be hashed (via SHA-512).

>>> hmac_lazy "strict bytestring key" "lazy bytestring input"
"<strict 512-bit MAC>"