Beispiel #1
0
        public void TestIsElementFalse(int value)
        {
            var prime = BigPrime.CreateWithoutChecks(11);
            var field = new BigIntegerField(prime);

            Assert.IsFalse(field.IsElement(new BigInteger(value)));
        }
Beispiel #2
0
        public void TestIsElementTrue()
        {
            var prime = BigPrime.CreateWithoutChecks(11);
            var field = new BigIntegerField(prime);

            Assert.IsTrue(field.IsElement(7));
        }
Beispiel #3
0
        public void TestConstructor()
        {
            var prime = BigPrime.CreateWithoutChecks(11);
            var field = new BigIntegerField(prime);

            Assert.AreEqual(prime, field.Modulo);
            Assert.AreEqual(1, field.ElementByteLength);
        }
Beispiel #4
0
        public void TestPowRejectsNegativeExponent()
        {
            var prime = BigPrime.CreateWithoutChecks(11);
            var field = new BigIntegerField(prime);

            Assert.Throws <ArgumentException>(
                () => field.Pow(5, -1)
                );
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
 }