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 9bbe66af958ce48c8087108eaaf209d8faa055fc
parent 04fc04a567597aca61add8825c290d4c9720ee94
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 10 Jan 2026 15:47:07 +0400

bench: fix weigh

Diffstat:
Mbench/Weight.hs | 21+++++++++++++--------
Mppad-sha256.cabal | 1+
2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/bench/Weight.hs b/bench/Weight.hs @@ -1,13 +1,18 @@ {-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns -fno-warn-type-defaults #-} +{-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE OverloadedStrings #-} module Main where +import Control.DeepSeq import qualified Crypto.Hash.SHA256 as SHA256 import qualified Data.ByteString as BS import Weigh +instance NFData SHA256.MAC where + rnf (SHA256.MAC b) = rnf b + -- note that 'weigh' doesn't work properly in a repl main :: IO () main = mainWith $ do @@ -21,10 +26,10 @@ hash = !bs2 = BS.replicate 128 0 !bs3 = BS.replicate 12288 0 in wgroup "hash" $ do - func' "hash (32B input)" SHA256.hash bs0 - func' "hash (64B input)" SHA256.hash bs1 - func' "hash (128B input)" SHA256.hash bs2 - func' "hash (12288B input)" SHA256.hash bs3 + func "hash (32B input)" SHA256.hash bs0 + func "hash (64B input)" SHA256.hash bs1 + func "hash (128B input)" SHA256.hash bs2 + func "hash (12288B input)" SHA256.hash bs3 hmac :: Weigh () hmac = @@ -34,8 +39,8 @@ hmac = !bs2 = BS.replicate 128 0 !bs3 = BS.replicate 12288 0 in wgroup "hmac" $ do - func' "hmac (32B input)" (SHA256.hmac key) bs0 - func' "hmac (64B input)" (SHA256.hmac key) bs1 - func' "hmac (128B input)" (SHA256.hmac key) bs2 - func' "hmac (12288B input)" (SHA256.hmac key) bs3 + func "hmac (32B input)" (SHA256.hmac key) bs0 + func "hmac (64B input)" (SHA256.hmac key) bs1 + func "hmac (128B input)" (SHA256.hmac key) bs2 + func "hmac (12288B input)" (SHA256.hmac key) bs3 diff --git a/ppad-sha256.cabal b/ppad-sha256.cabal @@ -95,6 +95,7 @@ benchmark sha256-weigh build-depends: base , bytestring + , deepseq , ppad-sha256 , weigh