public void AddPoints_SamePointOnCurve_InfResult() { EllipticCurve ECC = new EllipticCurve(1, 9, pField: 97, groupOrder: 90); Point P = new Point(19, 0); Assert.IsNull(ECC.AddPoints(P, P)); }
public void AddPoints_SamePointOnCurve_CorrectResult() { EllipticCurve ECC = new EllipticCurve(1, 9, pField: 97, groupOrder: 90); Point P = new Point(22, 3); Point expected = new Point(10, 90); Point actual = ECC.AddPoints(P, P); Assert.AreEqual(expected, actual); }
public void TestAddPointsSwapArg() { EllipticCurve curve = new EllipticCurve(a: 1, b: 1, modulus: 23); Point[] expected = new Point[] { (0, 1), (6, 19), (3, 13), (13, 16), (18, 3), (7, 11), (11, 3), (5, 19), (19, 18), (12, 4), (1, 16), (17, 20), (9, 16), (4, 0), (9, 7), (17, 3), (1, 7), (12, 19), (19, 5), (5, 4), (11, 20), (7, 12), (18, 20), (13, 7), (3, 10), (6, 4), (0, 22), null }; Point p = (0, 1); Point[] actual = new Point[expected.Length]; actual[0] = p; for (int i = 1; i < expected.Length; i++) { actual[i] = curve.AddPoints(p, actual[i - 1]); } CollectionAssert.AreEqual(expected, actual); }