packages feed

ppad-secp256k1 0.5.5 → 0.5.6

raw patch · 3 files changed

+10/−7 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG view
@@ -1,5 +1,10 @@ # Changelog +- 0.5.6 (2026-06-07)+  * Improves the wall-clock performance of the constant-time, non-wNAF+    scalar multiplication function by about 35%. ECDH also speeds up+    proportionally as a direct result.+ - 0.5.5 (2026-05-22)   * Adds no-hash ECDSA signature verification utilities that skip the     internal SHA256 step.
lib/Crypto/Curve/Secp256k1.hs view
@@ -567,18 +567,16 @@ mul# (# px, py, pz #) s     | CT.decide (CT.not (ge# s)) = (# () | #)     | otherwise =-        let !(P gx gy gz) = _CURVE_G-            !(C.Montgomery o) = C.one-        in  loop (0 :: Int) (# Z, o, Z #) (# gx, gy, gz #) (# px, py, pz #) s+        let !(C.Montgomery o) = C.one+        in  loop (0 :: Int) (# Z, o, Z #) (# px, py, pz #) s   where-    loop !j !a !f !d !_SECRET+    loop !j !a !d !_SECRET       | j == _CURVE_Q_BITS = (# | a #)       | otherwise =           let !nd = double# d               !(# nm, lsb_set #) = W.shr1_c# _SECRET               !nacc = select_proj# a (add_proj# a d) lsb_set-              !nf   = select_proj# (add_proj# f d) f lsb_set-          in  loop (succ j) nacc nf nd nm+          in  loop (succ j) nacc nd nm {-# INLINE mul# #-}  mul_vartime# :: Proj -> Limb4 -> (# () | Proj #)
ppad-secp256k1.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               ppad-secp256k1-version:            0.5.5+version:            0.5.6 synopsis:           Schnorr signatures, ECDSA, and ECDH on the elliptic curve                     secp256k1 license:            MIT