A practical incremental and one-pass, pure API to the
SHA-512 hash algorithm
(including HMAC support)
with performance close to the fastest implementations available in other languages.
The implementation is made in C with a haskell FFI wrapper that hides the C implementation.
NOTE: This package has been forked off cryptohash-0.11.7 because the cryptohash package has been
deprecated and so this package continues to satisfy the need for a lightweight package
providing the SHA512 hash algorithm without any dependencies on packages other than
base and bytestring.
Consequently, this package can be used as a drop-in replacement for cryptohash's
Crypto.Hash.SHA512 module, though with a clearly smaller footprint.
Changes
0.11.101.0
Add Eq instance for Ctx
add start and startlazy producing Ctx
Remove ineffective RULES
Declare Crypto.Hash.SHA512 module -XTrustworthy
Convert to CApiFFI
Added ...AndLength variants of hashing functions:
finalizeAndLength
hashlazyAndLength
hmaclazyAndLength
Minor optimizations in hmac and hash
0.11.100.1
First public release
0.11.100.0 (unreleased)
new hmac and hmaclazy functions providing HMAC-SHA-512
computation conforming to RFC2104 and RFC4231
fix unaligned memory-accesses
switch to ‘safe’ FFI for calls where overhead becomes neglible
removed inline assembly in favour of portable C constructs
fix 32bit length overflow bug in hash function
fix inaccurate context-size
add context-size verification to incremental API operations
0.11.7.1 (unreleased)
first version forked off cryptohash-0.11.7 release