public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat256.mulAddTo(x, y, zz); if (c != 0 || ((zz[15] >>> 1) >= PExt15s1 && Nat.gte(16, zz, PExt))) { Nat.subFrom(16, PExt, zz); } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat256.mulAddTo(x, y, zz); if (c != 0 || ((zz[15] >>> 1) >= PExt15s1 && Nat.gte(16, zz, PExt))) { Nat.subFrom(16, PExt, zz); } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { Nat256.mulAddTo(x, y, zz); if (Nat.gte(16, zz, PExt)) { subPExtFrom(zz); } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { Nat256.mulAddTo(x, y, zz); if (Nat.gte(16, zz, PExt)) { subPExtFrom(zz); } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat256.mulAddTo(x, y, zz); if (c != 0 || ((zz[15] & PExt15) == PExt15 && Nat.gte(16, zz, PExt))) { Nat.subFrom(16, PExt, zz); } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat256.mulAddTo(x, y, zz); if (c != 0 || (zz[15] == PExt15 && Nat.gte(16, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(16, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat256.mulAddTo(x, y, zz); if (c != 0 || (zz[15] == PExt15 && Nat.gte(16, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(16, zz, PExtInv.length); } } }
private static byte[] calculateS(byte[] r, byte[] k, byte[] s) { int[] t = new int[SCALAR_INTS * 2]; decodeScalar(r, 0, t); int[] u = new int[SCALAR_INTS]; decodeScalar(k, 0, u); int[] v = new int[SCALAR_INTS]; decodeScalar(s, 0, v); Nat256.mulAddTo(u, v, t); byte[] result = new byte[SCALAR_BYTES * 2]; for (int i = 0; i < t.length; ++i) { encode32(t[i], result, i * 4); } return reduceScalar(result); }