Fast, pure and practical SHA-256 implementation
A practical incremental and one-pass, pure API to the
SHA-256
cryptographic hash algorithm according to
FIPS 180-4 with
performance close to the fastest implementations available in other
languages.
The core SHA-256 algorithm is implemented in C and is thus expected to
be as fast as the standard
sha256sum(1) tool; for instance, on
an
Intel Core i7-3770 at 3.40GHz this implementation can
compute a SHA-256 hash over 230 MiB of data in under one second. (If,
instead, you require a pure Haskell implementation and performance is
secondary, please refer to the
SHA package.)
Additionally, this package provides support for
conforming to
RFC6234,
RFC4231,
RFC5869, et al..
Relationship to the cryptohash package and its API
This package has been originally a fork of
cryptohash-0.11.7
because the
cryptohash package had been deprecated and so
this package continues to satisfy the need for a lightweight package
providing the SHA-256 hash algorithm without any dependencies on
packages other than
base and
bytestring. The API
exposed by
cryptohash-sha256-0.11.*'s
Crypto.Hash.SHA256 module is guaranteed to remain a compatible
superset of the API provided by the
cryptohash-0.11.7's
module of the same name.
Consequently, this package is designed to be used as a drop-in
replacement for
cryptohash-0.11.7's
Crypto.Hash.SHA256
module, though with a
clearly smaller footprint by almost 3 orders
of magnitude.