protected static void implMultiply(long[] x, long[] y, long[] zz) { // for (int i = 0; i < 9; ++i) // { // implMulwAcc(x, y[i], zz, i); // } long[] precomp = precompMultiplicand(y); implMultiplyPrecomp(x, precomp, zz); }
public ECFieldElement subtract(ECFieldElement b) { // Addition and subtraction are the same in F2m return add(b); }
public ECFieldElement subtract(ECFieldElement b) { // Addition and subtraction are the same in F2m return add(b); }
public ECFieldElement squarePlusProduct(ECFieldElement x, ECFieldElement y) { long[] ax = this.x; long[] xx = ((SecT233FieldElement)x).x, yx = ((SecT233FieldElement)y).x; long[] tt = Nat256.createExt64(); SecT233Field.squareAddToExt(ax, tt); SecT233Field.multiplyAddToExt(xx, yx, tt); long[] z = Nat256.create64(); SecT233Field.reduce(tt, z); return new SecT233FieldElement(z); }
public ECFieldElement add(ECFieldElement b) { int[] z = Nat.create(12); SecP384R1Field.add(x, ((SecP384R1FieldElement)b).x, z); return new SecP384R1FieldElement(z); }
public ECFieldElement multiply(ECFieldElement b) { int[] z = Nat192.create(); SecP192R1Field.multiply(x, ((SecP192R1FieldElement)b).x, z); return new SecP192R1FieldElement(z); }
public ECFieldElement add(ECFieldElement b) { int[] z = Nat256.create(); SecP256R1Field.add(x, ((SecP256R1FieldElement)b).x, z); return new SecP256R1FieldElement(z); }
public ECFieldElement addOne() { int[] z = Nat160.create(); SecP160R2Field.addOne(x, z); return new SecP160R2FieldElement(z); }
public ECFieldElement multiply(ECFieldElement b) { long[] z = Nat256.create64(); SecT193Field.multiply(x, ((SecT193FieldElement)b).x, z); return new SecT193FieldElement(z); }
public ECFieldElement squarePow(int pow) { if (pow < 1) { return this; } long[] z = Nat256.create64(); SecT193Field.squareN(x, pow, z); return new SecT193FieldElement(z); }
public ECFieldElement invert() { long[] z = Nat128.create64(); SecT113Field.invert(x, z); return new SecT113FieldElement(z); }
public ECFieldElement sqrt() { long[] z = Nat128.create64(); SecT113Field.sqrt(x, z); return new SecT113FieldElement(z); }
public ECFieldElement add(ECFieldElement b) { long[] z = Nat256.create64(); SecT239Field.add(x, ((SecT239FieldElement)b).x, z); return new SecT239FieldElement(z); }
public ECFieldElement squarePow(int pow) { if (pow < 1) { return this; } long[] z = Nat256.create64(); SecT239Field.squareN(x, pow, z); return new SecT239FieldElement(z); }
public ECFieldElement sqrt() { long[] z = Nat192.create64(); SecT163Field.sqrt(x, z); return new SecT163FieldElement(z); }
public ECFieldElement add(ECFieldElement b) { long[] z = Nat256.create64(); SecT233Field.add(x, ((SecT233FieldElement)b).x, z); return new SecT233FieldElement(z); }
public ECFieldElement addOne() { long[] z = Nat256.create64(); SecT233Field.addOne(x, z); return new SecT233FieldElement(z); }
public ECFieldElement subtract(ECFieldElement b) { // Addition and subtraction are the same in F2m return add(b); }
public ECFieldElement subtract(ECFieldElement b) { // Addition and subtraction are the same in F2m return add(b); }
public ECFieldElement subtract(ECFieldElement b) { // Addition and subtraction are the same in F2m return add(b); }