Esempio n. 1
0
        public static void AddOne(uint[] x, uint[] z)
        {
            uint c = Nat.Inc(5, x, z);

            if (c != 0 || (z[4] == P4 && Nat160.Gte(z, P)))
            {
                Nat.Add33To(5, PInv33, z);
            }
        }
 public static uint[] FromBigInteger(BigInteger x)
 {
     uint[] z = Nat160.FromBigInteger(x);
     if (z[4] == P4 && Nat160.Gte(z, P))
     {
         Nat160.SubFrom(P, z);
     }
     return(z);
 }
Esempio n. 3
0
 public static uint[] FromBigInteger(BigInteger x)
 {
     uint[] array = Nat160.FromBigInteger(x);
     if (array[4] == uint.MaxValue && Nat160.Gte(array, P))
     {
         Nat160.SubFrom(P, array);
     }
     return(array);
 }
Esempio n. 4
0
 public static uint[] FromBigInteger(BigInteger x)
 {
     uint[] array = Nat160.FromBigInteger(x);
     if (array[4] == 4294967295u && Nat160.Gte(array, SecP160R2Field.P))
     {
         Nat160.SubFrom(SecP160R2Field.P, array);
     }
     return(array);
 }
Esempio n. 5
0
 public static uint[] FromBigInteger(BigInteger x)
 {
     uint[] numArray = Nat160.FromBigInteger(x);
     if ((numArray[4] == uint.MaxValue) && Nat160.Gte(numArray, P))
     {
         Nat160.SubFrom(P, numArray);
     }
     return(numArray);
 }
    public static void Reduce(uint[] xx, uint[] z)
    {
        ulong y = Nat160.Mul33Add(21389u, xx, 5, xx, 0, z, 0);

        if (Nat160.Mul33DWordAdd(21389u, y, z, 0) != 0 || (z[4] == uint.MaxValue && Nat160.Gte(z, P)))
        {
            Nat.Add33To(5, 21389u, z);
        }
    }
Esempio n. 7
0
        public static void Twice(uint[] x, uint[] z)
        {
            uint c = Nat.ShiftUpBit(5, x, 0, z);

            if (c != 0 || (z[4] == P4 && Nat160.Gte(z, P)))
            {
                Nat.AddWordTo(5, PInv, z);
            }
        }
Esempio n. 8
0
        public static void Add(uint[] x, uint[] y, uint[] z)
        {
            uint c = Nat160.Add(x, y, z);

            if (c != 0 || (z[4] == P4 && Nat160.Gte(z, P)))
            {
                Nat.AddWordTo(5, PInv, z);
            }
        }
Esempio n. 9
0
        public static void Reduce(uint[] xx, uint[] z)
        {
            ulong cc = Nat160.Mul33Add(PInv33, xx, 5, xx, 0, z, 0);
            uint  c  = Nat160.Mul33DWordAdd(PInv33, cc, z, 0);

            Debug.Assert(c == 0 || c == 1);

            if (c != 0 || (z[4] == P4 && Nat160.Gte(z, P)))
            {
                Nat.Add33To(5, PInv33, z);
            }
        }
Esempio n. 10
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0 && Nat160.Mul33WordAdd(21389u, x, z, 0) != 0) || (z[4] == uint.MaxValue && Nat160.Gte(z, P)))
     {
         Nat.Add33To(5, 21389u, z);
     }
 }
Esempio n. 11
0
 public static void Reduce32(uint x, uint[] z)
 {
     if (((x != 0) && (Nat160.Mul33WordAdd(0x538d, x, z, 0) != 0)) || ((z[4] == uint.MaxValue) && Nat160.Gte(z, P)))
     {
         Nat.Add33To(5, 0x538d, z);
     }
 }
Esempio n. 12
0
        public static void Reduce(uint[] xx, uint[] z)
        {
            ulong y = Nat160.Mul33Add(21389u, xx, 5, xx, 0, z, 0);

            if (Nat160.Mul33DWordAdd(21389u, y, z, 0) != 0u || (z[4] == 4294967295u && Nat160.Gte(z, SecP160R2Field.P)))
            {
                Nat.Add33To(5, 21389u, z);
            }
        }
Esempio n. 13
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0 && Nat160.MulWordsAdd(2147483649u, x, z, 0) != 0) || (z[4] == uint.MaxValue && Nat160.Gte(z, P)))
     {
         Nat.AddWordTo(5, 2147483649u, z);
     }
 }
Esempio n. 14
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0u && Nat160.MulWordsAdd(2147483649u, x, z, 0) != 0u) || (z[4] == 4294967295u && Nat160.Gte(z, SecP160R1Field.P)))
     {
         Nat.AddWordTo(5, 2147483649u, z);
     }
 }
Esempio n. 15
0
 public static void Reduce32(uint x, uint[] z)
 {
     if (((x != 0) && (Nat160.MulWordsAdd(0x80000001, x, z, 0) != 0)) || ((z[4] == uint.MaxValue) && Nat160.Gte(z, P)))
     {
         Nat.AddWordTo(5, 0x80000001, z);
     }
 }
Esempio n. 16
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0u && Nat160.Mul33WordAdd(21389u, x, z, 0) != 0u) || (z[4] == 4294967295u && Nat160.Gte(z, SecP160R2Field.P)))
     {
         Nat.Add33To(5, 21389u, z);
     }
 }
Esempio n. 17
0
        public static void Reduce(uint[] xx, uint[] z)
        {
            ulong y = Nat160.Mul33Add(0x538d, xx, 5, xx, 0, z, 0);

            if ((Nat160.Mul33DWordAdd(0x538d, y, z, 0) != 0) || ((z[4] == uint.MaxValue) && Nat160.Gte(z, P)))
            {
                Nat.Add33To(5, 0x538d, z);
            }
        }