public ECFieldElement multiply(ECFieldElement b) { int[] z = Nat256.create(); SM2P256V1Field.multiply(x, ((SM2P256V1FieldElement)b).x, z); return new SM2P256V1FieldElement(z); }
public ECFieldElement square() { int[] z = Nat256.create(); SM2P256V1Field.square(x, z); return new SM2P256V1FieldElement(z); }
public ECFieldElement invert() { // return new SM2P256V1FieldElement(toBigInteger().modInverse(Q)); int[] z = Nat256.create(); Mod.invert(SM2P256V1Field.P, x, z); return new SM2P256V1FieldElement(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 = Nat256.create(); SecP256K1Field.addOne(x, z); return new SecP256K1FieldElement(z); }
public ECFieldElement multiply(ECFieldElement b) { int[] z = Nat256.create(); Curve25519Field.multiply(x, ((Curve25519FieldElement)b).x, z); return new Curve25519FieldElement(z); }
public ECFieldElement addOne() { int[] z = Nat256.create(); SecP256K1Field.addOne(x, z); return new SecP256K1FieldElement(z); }
public ECFieldElement negate() { int[] z = Nat256.create(); SecP256K1Field.negate(x, z); return new SecP256K1FieldElement(z); }
public ECFieldElement invert() { // return new SecP256K1FieldElement(toBigInteger().modInverse(Q)); int[] z = Nat256.create(); Mod.invert(SecP256K1Field.P, x, z); return new SecP256K1FieldElement(z); }
public ECFieldElement addOne() { int[] z = Nat256.create(); SM2P256V1Field.addOne(x, z); return new SM2P256V1FieldElement(z); }
public ECFieldElement square() { int[] z = Nat256.create(); SecP256K1Field.square(x, z); return new SecP256K1FieldElement(z); }
public ECFieldElement negate() { int[] z = Nat256.create(); SecP256R1Field.negate(x, z); return new SecP256R1FieldElement(z); }
public ECFieldElement square() { int[] z = Nat256.create(); SecP256R1Field.square(x, z); return new SecP256R1FieldElement(z); }
public ECFieldElement square() { int[] z = Nat256.create(); Curve25519Field.square(x, z); return new Curve25519FieldElement(z); }
public ECFieldElement square() { int[] z = Nat256.create(); SecP256K1Field.square(x, z); return new SecP256K1FieldElement(z); }
public ECFieldElement addOne() { int[] z = Nat256.create(); Curve25519Field.addOne(x, z); return new Curve25519FieldElement(z); }
public ECFieldElement square() { int[] z = Nat256.create(); Curve25519Field.square(x, z); return new Curve25519FieldElement(z); }
public ECFieldElement divide(ECFieldElement b) { // return multiply(b.invert()); int[] z = Nat256.create(); Mod.invert(Curve25519Field.P, ((Curve25519FieldElement)b).x, z); Curve25519Field.multiply(z, x, z); return new Curve25519FieldElement(z); }
public ECFieldElement divide(ECFieldElement b) { // return multiply(b.invert()); int[] z = Nat256.create(); Mod.invert(SM2P256V1Field.P, ((SM2P256V1FieldElement)b).x, z); SM2P256V1Field.multiply(z, x, z); return new SM2P256V1FieldElement(z); }
public ECFieldElement divide(ECFieldElement b) { // return multiply(b.invert()); int[] z = Nat256.create(); Mod.invert(SecP256R1Field.P, ((SecP256R1FieldElement)b).x, z); SecP256R1Field.multiply(z, x, z); return new SecP256R1FieldElement(z); }