示例#1
0
        static void TestFr()
        {
            Console.WriteLine("TestFr");
            Fr x = new Fr();

            assert("x.isZero", x.IsZero());
            x.Clear();
            assert("0", x.GetStr(10) == "0");
            assert("0.IzZero", x.IsZero());
            assert("!0.IzOne", !x.IsOne());
            x.SetInt(1);
            assert("1", x.GetStr(10) == "1");
            assert("!1.IzZero", !x.IsZero());
            assert("1.IzOne", x.IsOne());
            x.SetInt(3);
            assert("3", x.GetStr(10) == "3");
            assert("!3.IzZero", !x.IsZero());
            assert("!3.IzOne", !x.IsOne());
            x.SetInt(-5);
            x = -x;
            assert("5", x.GetStr(10) == "5");
            x.SetInt(4);
            x = x * x;
            assert("16", x.GetStr(10) == "16");
            assert("10", x.GetStr(16) == "10");
            Fr y;

            y = x;
            assert("x == y", x.Equals(y));
            x.SetInt(123);
            assert("123", x.GetStr(10) == "123");
            assert("7b", x.GetStr(16) == "7b");
            assert("y != x", !x.Equals(y));
            Console.WriteLine("exception test");
            try {
                x.SetStr("1234567891234x", 10);
                Console.WriteLine("x = {0}", x);
            } catch (Exception e) {
                Console.WriteLine("OK ; expected exception: {0}", e);
            }
            x.SetStr("1234567891234", 10);
            assert("1234567891234", x.GetStr(10) == "1234567891234");
            {
                byte[] buf = x.Serialize();
                y.Deserialize(buf);
                assert("x == y", x.Equals(y));
            }
        }
示例#2
0
        static void TestPairing()
        {
            Console.WriteLine("TestG2");
            G1 P = new G1();

            P.setStr("1 -1 1");
            G2 Q = new G2();

            Q.HashAndMapTo("1");
            Fr a = new Fr();
            Fr b = new Fr();

            a.SetStr("12345678912345673453");
            b.SetStr("230498230982394243424");
            G1 aP = new G1();
            G2 bQ = new G2();

            G1.Mul(aP, P, a);
            G2.Mul(bQ, Q, b);
            GT e1 = new GT();
            GT e2 = new GT();
            GT e3 = new GT();

            Pairing(e1, P, Q);
            Pairing(e2, aP, Q);
            GT.Pow(e3, e1, a);
            assert("e2.Equals(e3)", e2.Equals(e3));
            Pairing(e2, P, bQ);
            GT.Pow(e3, e1, b);
            assert("e2.Equals(e3)", e2.Equals(e3));
        }
示例#3
0
        static void TestPairing()
        {
            Console.WriteLine("TestG2");
            G1 P = new G1();

            P.HashAndMapTo("123");
            G2 Q = new G2();

            Q.HashAndMapTo("1");
            Fr a = new Fr();
            Fr b = new Fr();

            a.SetStr("12345678912345673453", 10);
            b.SetStr("230498230982394243424", 10);
            G1 aP = new G1();
            G2 bQ = new G2();

            aP.Mul(P, a);
            bQ.Mul(Q, b);
            GT e1 = new GT();
            GT e2 = new GT();
            GT e3 = new GT();

            e1.Pairing(P, Q);
            e2.Pairing(aP, Q);
            e3.Pow(e1, a);
            assert("e2.Equals(e3)", e2.Equals(e3));
            e2.Pairing(P, bQ);
            e3.Pow(e1, b);
            assert("e2.Equals(e3)", e2.Equals(e3));
        }
示例#4
0
        static void TestFr()
        {
            Console.WriteLine("TestFr");
            Fr x = new Fr();

            x.Clear();
            assert("0", x.ToString() == "0");
            assert("0.IzZero", x.IsZero());
            assert("!0.IzOne", !x.IsOne());
            x.SetInt(1);
            assert("1", x.ToString() == "1");
            assert("!1.IzZero", !x.IsZero());
            assert("1.IzOne", x.IsOne());
            x.SetInt(3);
            assert("3", x.ToString() == "3");
            assert("!3.IzZero", !x.IsZero());
            assert("!3.IzOne", !x.IsOne());
            x.SetInt(-5);
            x = -x;
            assert("5", x.ToString() == "5");
            x.SetInt(4);
            x = x * x;
            assert("16", x.ToString() == "16");
            Fr y;

            y = x.Clone();
            assert("x == y", x.Equals(y));
            x.SetInt(123);
            assert("123", x.ToString() == "123");
            assert("y != x", !x.Equals(y));
            try {
                x.SetStr("1234567891234x");
                Console.WriteLine("x = {0}", x);
            } catch (Exception e) {
                Console.WriteLine("exception test OK\n'{0}'", e);
            }
            x.SetStr("1234567891234");
            assert("1234567891234", x.ToString() == "1234567891234");
        }