| ... | ... | @@ -43,28 +43,21 @@ pub const Curve25519 = struct { |
| 43 | 43 | var swap: u8 = 0; |
| 44 | 44 | var pos: usize = bits - 1; |
| 45 | 45 | while (true) : (pos -= 1) { |
| 46 | | const b = (s[pos >> 3] >> @truncate(u3, pos)) & 1; |
| 47 | | swap ^= b; |
| 46 | const bit = (s[pos >> 3] >> @truncate(u3, pos)) & 1; |
| 47 | swap ^= bit; |
| 48 | 48 | Fe.cSwap2(&x2, &x3, &z2, &z3, swap); |
| 49 | | swap = b; |
| 50 | | var tmp0 = x3.sub(z3); |
| 51 | | var tmp1 = x2.sub(z2); |
| 52 | | x2 = x2.add(z2); |
| 53 | | z2 = x3.add(z3); |
| 54 | | z3 = tmp0.mul(x2); |
| 55 | | z2 = z2.mul(tmp1); |
| 56 | | tmp0 = tmp1.sq(); |
| 57 | | tmp1 = x2.sq(); |
| 58 | | x3 = z3.add(z2); |
| 59 | | z2 = z3.sub(z2); |
| 60 | | x2 = tmp1.mul(tmp0); |
| 61 | | tmp1 = tmp1.sub(tmp0); |
| 62 | | z2 = z2.sq(); |
| 63 | | z3 = tmp1.mul32(121666); |
| 64 | | x3 = x3.sq(); |
| 65 | | tmp0 = tmp0.add(z3); |
| 66 | | z3 = x1.mul(z2); |
| 67 | | z2 = tmp1.mul(tmp0); |
| 49 | swap = bit; |
| 50 | const a = x2.add(z2); |
| 51 | const b = x2.sub(z2); |
| 52 | const aa = a.sq(); |
| 53 | const bb = b.sq(); |
| 54 | x2 = aa.mul(bb); |
| 55 | const e = aa.sub(bb); |
| 56 | const da = x3.sub(z3).mul(a); |
| 57 | const cb = x3.add(z3).mul(b); |
| 58 | x3 = da.add(cb).sq(); |
| 59 | z3 = x1.mul(da.sub(cb).sq()); |
| 60 | z2 = e.mul(bb.add(e.mul32(121666))); |
| 68 | 61 | if (pos == 0) break; |
| 69 | 62 | } |
| 70 | 63 | Fe.cSwap2(&x2, &x3, &z2, &z3, swap); |