chacha

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

commit 915a4e8f3003172c7506029e3cc29066e09fb7df
parent f35e58b1f912f0f37fa7f2a88635a0238e80ea7d
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 16 May 2026 12:53:52 -0230

misc: s/pure/fast

Diffstat:
MREADME.md | 5++---
Mflake.nix | 2+-
Mlib/Crypto/Cipher/ChaCha20.hs | 2+-
Mppad-chacha.cabal | 4++--
4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md @@ -4,7 +4,7 @@ ![](https://img.shields.io/badge/license-MIT-brightgreen) [![](https://img.shields.io/badge/haddock-chacha-lightblue)](https://docs.ppad.tech/chacha) -A pure Haskell implementation of the ChaCha20 stream cipher as specified +A fast Haskell implementation of the ChaCha20 stream cipher as specified by [RFC8439][8439]. ## Usage @@ -36,8 +36,7 @@ Haddocks (API documentation, etc.) are hosted at ## Performance -The aim is best-in-class performance for pure, highly-auditable Haskell -code. +The aim is best-in-class performance. Current benchmark figures on the simple "sunscreen input" from RFC8439 on an M4 Silicon MacBook Air look like (use `cabal bench` to run the diff --git a/flake.nix b/flake.nix @@ -1,5 +1,5 @@ { - description = "A pure Haskell ChaCha stream cipher."; + description = "A fast Haskell ChaCha stream cipher."; inputs = { ppad-base16 = { diff --git a/lib/Crypto/Cipher/ChaCha20.hs b/lib/Crypto/Cipher/ChaCha20.hs @@ -10,7 +10,7 @@ -- License: MIT -- Maintainer: Jared Tobin <jared@ppad.tech> -- --- A pure ChaCha20 implementation, as specified by +-- A fast ChaCha20 implementation, as specified by -- [RFC 8439](https://datatracker.ietf.org/doc/html/rfc8439). module Crypto.Cipher.ChaCha20 ( diff --git a/ppad-chacha.cabal b/ppad-chacha.cabal @@ -1,7 +1,7 @@ cabal-version: 3.0 name: ppad-chacha version: 0.2.1 -synopsis: A pure ChaCha20 stream cipher +synopsis: A fast ChaCha20 stream cipher license: MIT license-file: LICENSE author: Jared Tobin @@ -11,7 +11,7 @@ build-type: Simple tested-with: GHC == 9.10.3 extra-doc-files: CHANGELOG description: - A pure ChaCha20 stream cipher and block function. + A fast ChaCha20 stream cipher and block function. flag llvm description: Use GHC's LLVM backend.