sha256

Pure Haskell SHA-256, HMAC-SHA256 (docs.ppad.tech/sha256).
git clone git://git.ppad.tech/sha256.git
Log | Files | Refs | README | LICENSE

commit 528d9cf07ca756fb5422cab174849fe0708620d0
parent 4b60f861160b15b88ee5eb1e7f3d0e057776dc77
Author: Jared Tobin <jared@jtobin.io>
Date:   Thu,  8 Jan 2026 22:39:19 +0400

release: v0.2.5

Diffstat:
MCHANGELOG | 12++++++++++++
Mppad-sha256.cabal | 2+-
2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG b/CHANGELOG @@ -1,5 +1,16 @@ # Changelog +- 0.2.5 (2026-01-08) + * We now check if the ARM cryptographic extensions are available, and, + if so, use them to calculate hashes. If they're unavailable we + simply use the pure implementation as a fallback. This yields about + a 5x performance boost for 'hash' and 3.5x boost for 'hmac' (again, + when available). + + * Allocation for both the 'hash' and 'hmac' functions has been reduced + dramatically, mostly by optimising the padding internals, and is now + constant with respect to input. + - 0.2.4 (2025-12-28) * Adds an 'llvm' build flag and tests with GHC 9.10.3. @@ -12,6 +23,7 @@ - 0.2.1 (2024-10-13) * Adds an INLINE pragma to an internal step function. + * 'hmac' no longer calls 'hmac_lazy', which has no practical effect other than to clean up profiling reports generated by GHC. diff --git a/ppad-sha256.cabal b/ppad-sha256.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: ppad-sha256 -version: 0.2.4 +version: 0.2.5 synopsis: The SHA-256 and HMAC-SHA256 algorithms license: MIT license-file: LICENSE