public void TestIsElementFalse(int value) { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); Assert.IsFalse(field.IsElement(new BigInteger(value))); }
public void TestIsElementTrue() { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); Assert.IsTrue(field.IsElement(7)); }
public void TestConstructor() { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); Assert.AreEqual(prime, field.Modulo); Assert.AreEqual(1, field.ElementByteLength); }
public void TestPowRejectsNegativeExponent() { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); Assert.Throws <ArgumentException>( () => field.Pow(5, -1) ); }
public void TestMod(int value, int expectedRaw) { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); var result = field.Mod(value); var expected = new BigInteger(expectedRaw); Assert.AreEqual(expected, result); }
public void TestSquare() { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); var result = field.Square(5); var expected = new BigInteger(3); Assert.AreEqual(expected, result); }
public void TestInvertMult() { var prime = BigPrime.CreateWithoutChecks(11); var field = new BigIntegerField(prime); var result = field.InvertMult(5); var expected = new BigInteger(9); Assert.AreEqual(expected, result); Assert.AreEqual(BigInteger.One, field.Mod(result * 5)); }
/// <summary> /// Initializes a new instance of <see cref="CurveEquation"/> with given parameters. /// </summary> /// <param name="prime">Prime characteristic of the underlying scalar field.</param> /// <param name="a">The parameter A in the curve equation.</param> /// <param name="b">The parameter B in the curve equation.</param> protected CurveEquation(BigPrime prime, BigInteger a, BigInteger b) { A = a; B = b; Field = new BigIntegerField(prime); }