Commit 3abe464b06

Frank Denis <github@pureftpd.org>
2021-12-27 18:29:25
crypto/edwards25519: faster point decompression
Make recovery of the x-coordinate slightly faster. See https://mailarchive.ietf.org/arch/msg/cfrg/qlKpMBqxXZYmDpXXIx6LO3Oznv4/ for details.
1 parent 4266795
Changed files (1)
lib
std
crypto
lib/std/crypto/25519/edwards25519.zig
@@ -34,8 +34,7 @@ pub const Edwards25519 = struct {
         var v = u.mul(Fe.edwards25519d);
         u = u.sub(z);
         v = v.add(z);
-        const v3 = v.sq().mul(v);
-        var x = v3.sq().mul(v).mul(u).pow2523().mul(v3).mul(u);
+        var x = u.mul(v).pow2523().mul(u);
         const vxx = x.sq().mul(v);
         const has_m_root = vxx.sub(u).isZero();
         const has_p_root = vxx.add(u).isZero();