示例#1
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));
        }
示例#2
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));
        }