public static GE CONST(uint a, uint b, uint c, uint d, uint e, uint f, uint g, uint h, uint i, uint j, uint k, uint l, uint m, uint n, uint o, uint p)
 {
     return(new GE(
                FE.CONST(a, b, c, d, e, f, g, h),
                FE.CONST(i, j, k, l, m, n, o, p),
                false
                ));
 }
예제 #2
0
        public void NonNormalizedPointDeserialization()
        {
            var p = FE.CONST(
                0xFFFFFC2FU,
                0xFFFFFFFFU,
                0xFFFFFFFFU,
                0xFFFFFFFFU,
                0xFFFFFFFFU,
                0xFFFFFFFFU,
                0xFFFFFFFFU,
                0xFFFFFFFFU);
            var x = EC.G.x;

            x = x.Add(p);
            var x3 = x * x * x;
            var y2 = x3 + new FE(EC.CURVE_B);

            Assert.True(y2.Sqrt(out var y));
            var ge = new GroupElement(new GE(x, y));

            var ge2 = GroupElement.FromBytes(ge.ToBytes());

            Assert.Equal(ge, ge2);
        }