public void MultiplyH(byte[] x) { byte[] z = new byte[16]; for (int i = 0; i < 16; ++i) { byte h = H[i]; for (int j = 7; j >= 0; --j) { if ((h & (1 << j)) != 0) { GcmUtilities.Xor(z, x); } bool lsb = (x[15] & 1) != 0; GcmUtilities.ShiftRight(x); if (lsb) { // R = new byte[]{ 0xe1, ... }; //GcmUtilities.Xor(v, R); x[0] ^= (byte)0xe1; } } } Array.Copy(z, 0, x, 0, 16); }
internal static void MultiplyP(uint[] x) { int num = (x[3] & 1U) > 0U ? 1 : 0; GcmUtilities.ShiftRight(x); if (num == 0) { return; } x[0] ^= 3774873600U; }
internal static void Multiply(byte[] block, byte[] val) { byte[] numArray = Arrays.Clone(block); byte[] block1 = new byte[16]; for (int index1 = 0; index1 < 16; ++index1) { byte num1 = val[index1]; for (int index2 = 7; index2 >= 0; --index2) { if (((int)num1 & 1 << index2) != 0) { GcmUtilities.Xor(block1, numArray); } int num2 = ((uint)numArray[15] & 1U) > 0U ? 1 : 0; GcmUtilities.ShiftRight(numArray); if (num2 != 0) { numArray[0] ^= (byte)225; } } } Array.Copy((Array)block1, 0, (Array)block, 0, 16); }
internal static void MultiplyP(uint[] x, uint[] z) { uint num = (uint)((int)GcmUtilities.ShiftRight(x, z) >> 8); z[0] ^= (num & 3774873600u); }
// Token: 0x060000FA RID: 250 RVA: 0x00008A08 File Offset: 0x00006C08 internal static void MultiplyP(uint[] x) { uint num = (uint)((int)GcmUtilities.ShiftRight(x) >> 8); x[0] ^= (num & 3774873600U); }