poly1305

The Poly1305 message authentication code (docs.ppad.tech/poly1305).
git clone git://git.ppad.tech/poly1305.git
Log | Files | Refs | README | LICENSE

commit 6c41e670df8ccdbd06d3c0cf2e3379d0f2089cbd
parent f87b6a482554680e197358ae21d3e44e729659dd
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 27 Dec 2025 08:17:42 -0330

meta: readme bump

Diffstat:
MREADME.md | 28+++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md @@ -52,14 +52,35 @@ This library aims at the maximum security achievable in a garbage-collected language under an optimizing compiler such as GHC, in which strict constant-timeness can be [challenging to achieve][const]. -Note that *at present* we use GHC's native variable-length Integer type -internally, and make no guarantees of constant-time execution. - The Poly1305 MAC function and its internals pass all official test vectors in RFC8439, and the downstream AEAD-ChaCha20-Poly1305 implementation in [ppad-aead](https://github.com/ppad-tech/aead) passes all the [Project Wycheproof vectors][wyche]. +Fixed-width words and constant-time primitives are supplied by +[ppad-fixed][fixed]. Criterion benchmarks provide sanity checks of +constant-time execution: + +``` + benchmarking ppad-poly1305/mac (small key) + time 131.7 ns (131.6 ns .. 131.9 ns) + 1.000 R² (1.000 R² .. 1.000 R²) + mean 131.6 ns (131.4 ns .. 131.9 ns) + std dev 689.1 ps (544.4 ps .. 1.022 ns) + + benchmarking ppad-poly1305/mac (mid key) + time 132.4 ns (132.1 ns .. 132.6 ns) + 1.000 R² (1.000 R² .. 1.000 R²) + mean 132.0 ns (131.8 ns .. 132.2 ns) + std dev 539.4 ps (450.7 ps .. 667.1 ps) + + benchmarking ppad-poly1305/mac (big key) + time 131.8 ns (131.6 ns .. 132.0 ns) + 1.000 R² (1.000 R² .. 1.000 R²) + mean 131.9 ns (131.8 ns .. 132.1 ns) + std dev 594.3 ps (464.5 ps .. 816.3 ps) +``` + If you discover any vulnerabilities, please disclose them via security@ppad.tech. @@ -86,3 +107,4 @@ to get a REPL for the main library. [hadoc]: https://docs.ppad.tech/poly1305 [const]: https://www.chosenplaintext.ca/articles/beginners-guide-constant-time-cryptography.html [wyche]: https://github.com/C2SP/wycheproof +[fixed]: https://github.com/ppad-tech/fixed