private static bool IsSquare(uint[] x) { uint[] z = Nat224.Create(); uint[] numArray2 = Nat224.Create(); Nat224.Copy(x, z); for (int i = 0; i < 7; i++) { Nat224.Copy(z, numArray2); SecP224R1Field.SquareN(z, ((int)1) << i, z); SecP224R1Field.Multiply(z, numArray2, z); } SecP224R1Field.SquareN(z, 0x5f, z); return(Nat224.IsOne(z)); }
private static bool IsSquare(uint[] x) { uint[] z = Nat224.Create(); uint[] array = Nat224.Create(); Nat224.Copy(x, z); for (int i = 0; i < 7; i++) { Nat224.Copy(z, array); SecP224R1Field.SquareN(z, 1 << i, z); SecP224R1Field.Multiply(z, array, z); } SecP224R1Field.SquareN(z, 95, z); return(Nat224.IsOne(z)); }
private static bool IsSquare(uint[] x) { uint[] t1 = Nat224.Create(); uint[] t2 = Nat224.Create(); Nat224.Copy(x, t1); for (int i = 0; i < 7; ++i) { Nat224.Copy(t1, t2); SecP224R1Field.SquareN(t1, 1 << i, t1); SecP224R1Field.Multiply(t1, t2, t1); } SecP224R1Field.SquareN(t1, 95, t1); return(Nat224.IsOne(t1)); }