Пример #1
0
 public static void Reduce32(uint x, uint[] z)
 {
     if (((x != 0) && (Nat256.Mul33WordAdd(0x3d1, x, z, 0) != 0)) || ((z[7] == uint.MaxValue) && Nat256.Gte(z, P)))
     {
         Nat.Add33To(8, 0x3d1, z);
     }
 }
Пример #2
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0u && Nat256.Mul33WordAdd(977u, x, z, 0) != 0u) || (z[7] == 4294967295u && Nat256.Gte(z, SecP256K1Field.P)))
     {
         Nat.Add33To(8, 977u, z);
     }
 }
Пример #3
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0 && Nat256.Mul33WordAdd(977u, x, z, 0) != 0) || (z[7] == uint.MaxValue && Nat256.Gte(z, P)))
     {
         Nat.Add33To(8, 977u, z);
     }
 }
Пример #4
0
 public static void Reduce32(uint x, uint[] z)
 {
     if ((x != 0 && Nat256.Mul33WordAdd(PInv33, x, z, 0) != 0) ||
         (z[7] == P7 && Nat256.Gte(z, P)))
     {
         Nat.Add33To(8, PInv33, z);
     }
 }
Пример #5
0
        public static void Reduce32(uint x, uint[] z)
        {
            uint c = Nat256.Mul33WordAdd(PInv33, x, z, 0);

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

            if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P)))
            {
                Nat256.AddDWord(PInv, z, 0);
            }
        }