Esempio n. 1
0
 public static void Twice(uint[] x, uint[] z)
 {
     if (Nat.ShiftUpBit(12, x, 0u, z) != 0u || (z[11] == 4294967295u && Nat.Gte(12, z, SecP384R1Field.P)))
     {
         SecP384R1Field.AddPInvTo(z);
     }
 }
Esempio n. 2
0
 public static void AddOne(uint[] x, uint[] z)
 {
     if (Nat.Inc(12, x, z) != 0u || (z[11] == 4294967295u && Nat.Gte(12, z, SecP384R1Field.P)))
     {
         SecP384R1Field.AddPInvTo(z);
     }
 }
Esempio n. 3
0
        public static void Reduce32(uint x, uint[] z)
        {
            long num = 0L;

            if (x != 0u)
            {
                long num2 = (long)((ulong)x);
                num  += (long)((ulong)z[0] + (ulong)num2);
                z[0]  = (uint)num;
                num >>= 32;
                num  += (long)((ulong)z[1] - (ulong)num2);
                z[1]  = (uint)num;
                num >>= 32;
                if (num != 0L)
                {
                    num  += (long)((ulong)z[2]);
                    z[2]  = (uint)num;
                    num >>= 32;
                }
                num  += (long)((ulong)z[3] + (ulong)num2);
                z[3]  = (uint)num;
                num >>= 32;
                num  += (long)((ulong)z[4] + (ulong)num2);
                z[4]  = (uint)num;
                num >>= 32;
            }
            if ((num != 0L && Nat.IncAt(12, z, 5) != 0u) || (z[11] == 4294967295u && Nat.Gte(12, z, SecP384R1Field.P)))
            {
                SecP384R1Field.AddPInvTo(z);
            }
        }