poly1305

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

CHANGELOG (1511B)


      1 # Changelog
      2 
      3 - 0.4.5 (2026-07-17)
      4   * Adds an optimization-opaque barrier to MAC equality comparison
      5     to prevent LLVM from introducing variable-time instructions when
      6     compiling with the LLVM backend.
      7 
      8 - 0.4.4 (2026-07-06)
      9   * Reverts the unrolled MAC comparison introduced in 0.4.3, which was
     10     found to introduce timing variation on both aarch64 and x86-64 when
     11     compiled via the LLVM backend (the NCG backend was unaffected).
     12 
     13 - 0.4.3 (2026-07-06)
     14   * The constant-time 'Eq' on 'MAC' now folds over the two buffers
     15     directly, rather than materialising an intermediate ByteString
     16     holding their XOR on the heap. Semantics are unchanged.
     17 
     18   * Improves the performance of constant-time MAC comparison.
     19 
     20 - 0.4.2 (2026-05-16)
     21   * Features order-of-magnitude performance improvements, especially
     22     on ARM platforms where NEON intrinsics are available.
     23 
     24 - 0.4.1 (2025-12-28)
     25   * Bumps the ppad-fixed lower-bound version and tests with GHC 9.10.3.
     26 
     27 - 0.4.0 (2025-12-27)
     28   * Switches from variable-size 'Integer' to fixed-width words and
     29     constant-time primitives supplied by ppad-fixed. The implementation now
     30     runs about 25x faster and in time constant with respect to secrets.
     31 
     32 - 0.3.0 (2025-06-21)
     33   * The 'mac' function is now total, returning 'Nothing' when supplied
     34     with an invalid-length one-time key.
     35 
     36 - 0.2.0 (2025-03-10)
     37   * Fix a bug in which small produced MAC's were not being padded to 128
     38     bits.
     39 
     40 - 0.1.0 (2025-03-09)
     41   * Initial release, supporting the Poly1305 MAC.
     42