@hackage cryptohash-sha2560.11.102.1
Fast, pure and practical SHA-256 implementation
Categories
License
BSD-3-Clause
Maintainer
Herbert Valerio Riedel <hvr@gnu.org>
Links
Versions
- 0.11.102.1 Wed, 1 Jan 2025
- 0.11.102.0 Tue, 15 Jun 2021
- 0.11.101.0 Wed, 25 Mar 2020
- 0.11.100.1 Sat, 8 Apr 2017
- 0.11.100.0 Mon, 16 May 2016
- 0.11.7.2 Tue, 10 May 2016 Show all…
Installation
Tested Compilers
Dependencies (2)
- base >=4.5 && <5
- bytestring ^>=0.9.2.0 || ^>=0.10.0.0 || ^>=0.11.0.0 || ^>=0.12.0.2 Show all…
Dependents (69)
@cardano/ouroboros-network, @hackage/notion-client, @hackage/minicurl, @hackage/drunken-bishop, @hackage/krapsh, @cardano/latex-svg-image, Show all…
Package Flags
exe
(off by default)
Enable building sha256sum executable
use-cbits
(on by default)
Use fast optimized C routines via FFI; if flag is disabled falls back to non-FFI Haskell optimized 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
HMAC-SHA-256: SHA-256-based Hashed Message Authentication Codes (HMAC)
HKDF-SHA-256: HMAC-SHA-256-based Key Derivation Function (HKDF)
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.