chacha

The ChaCha20 stream cipher (docs.ppad.tech/chacha).
git clone git://git.ppad.tech/chacha.git
Log | Files | Refs | LICENSE

commit f12ebe4a856b9664507ce94d24891e9b158b75b3
parent c8020aeca19443c657a234640944b6195bb4635d
Author: Jared Tobin <jared@jtobin.io>
Date:   Fri,  7 Mar 2025 16:23:00 +0400

bench: basic suite

Diffstat:
Mbench/Main.hs | 32+++++++++++++++++++++++++++++++-
Mppad-chacha.cabal | 1+
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