commit f12ebe4a856b9664507ce94d24891e9b158b75b3
parent c8020aeca19443c657a234640944b6195bb4635d
Author: Jared Tobin <jared@jtobin.io>
Date: Fri, 7 Mar 2025 16:23:00 +0400
bench: basic suite
Diffstat:
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/bench/Main.hs b/bench/Main.hs
@@ -1,4 +1,34 @@
+{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE OverloadedStrings #-}
+
module Main where
+import Criterion.Main
+import qualified Crypto.Cipher.ChaCha20 as ChaCha20
+import qualified Data.ByteString as BS
+import qualified Data.ByteString.Base16 as B16
+import Data.Maybe (fromJust)
+
main :: IO ()
-main = pure ()
+main = defaultMain [
+ suite
+ ]
+
+plain :: BS.ByteString
+plain = fromJust . B16.decode $
+ "4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e"
+
+key :: BS.ByteString
+key = fromJust . B16.decode $
+ "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"
+
+non :: BS.ByteString
+non = fromJust . B16.decode $
+ "000000090000004a00000000"
+
+suite :: Benchmark
+suite =
+ bgroup "ppad-chacha" [
+ bench "encrypt" $ nfAppIO (ChaCha20.encrypt key 1 non) plain
+ ]
+
diff --git a/ppad-chacha.cabal b/ppad-chacha.cabal
@@ -60,5 +60,6 @@ benchmark chacha-bench
base
, bytestring
, criterion
+ , ppad-base16
, ppad-chacha