poly1305

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

CHANGELOG (2207B)


      1 # Changelog
      2 
      3 - 0.4.8 (2026-10-31)
      4   * Uses the native C kernel on x86_64 as well as aarch64, along with
      5     an AVX2 4-way kernel on x86_64 CPUs that support it, detected at
      6     runtime. 'mac' on such CPUs is roughly 1.5x faster on short
      7     messages and 4-5x faster on long ones.
      8 
      9 - 0.4.7 (2026-10-31)
     10   * Bumps the ppad-fixed dependency to 0.2.1, which under the llvm
     11     flag on x86_64 compiles ppad-fixed with LLVM's x86 cmov converter
     12     off (-optlc=-x86-cmov-converter=false). This library is compiled
     13     likewise, as ppad-fixed's constant-time arithmetic can be inlined
     14     into it.
     15 
     16   * Crypto.MAC.Poly1305.Arm is no longer exposed.
     17 
     18 - 0.4.6 (2026-08-01)
     19   * Merely bumps the ppad-fixed dependency.
     20 
     21 - 0.4.5 (2026-07-17)
     22   * Adds an optimization-opaque barrier to MAC equality comparison
     23     to prevent LLVM from introducing variable-time instructions when
     24     compiling with the LLVM backend.
     25 
     26 - 0.4.4 (2026-07-06)
     27   * Reverts the unrolled MAC comparison introduced in 0.4.3, which was
     28     found to introduce timing variation on both aarch64 and x86-64 when
     29     compiled via the LLVM backend (the NCG backend was unaffected).
     30 
     31 - 0.4.3 (2026-07-06)
     32   * The constant-time 'Eq' on 'MAC' now folds over the two buffers
     33     directly, rather than materialising an intermediate ByteString
     34     holding their XOR on the heap. Semantics are unchanged.
     35 
     36   * Improves the performance of constant-time MAC comparison.
     37 
     38 - 0.4.2 (2026-05-16)
     39   * Features order-of-magnitude performance improvements, especially
     40     on ARM platforms where NEON intrinsics are available.
     41 
     42 - 0.4.1 (2025-12-28)
     43   * Bumps the ppad-fixed lower-bound version and tests with GHC 9.10.3.
     44 
     45 - 0.4.0 (2025-12-27)
     46   * Switches from variable-size 'Integer' to fixed-width words and
     47     constant-time primitives supplied by ppad-fixed. The implementation now
     48     runs about 25x faster and in time constant with respect to secrets.
     49 
     50 - 0.3.0 (2025-06-21)
     51   * The 'mac' function is now total, returning 'Nothing' when supplied
     52     with an invalid-length one-time key.
     53 
     54 - 0.2.0 (2025-03-10)
     55   * Fix a bug in which small produced MAC's were not being padded to 128
     56     bits.
     57 
     58 - 0.1.0 (2025-03-09)
     59   * Initial release, supporting the Poly1305 MAC.
     60