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);
        }