private static void QuarterRound(uint[] set, uint a, uint b, uint c, uint d) { set[b] ^= BitShift.RotateLeft32(set[a] + set[d], 7); set[c] ^= BitShift.RotateLeft32(set[b] + set[a], 9); set[d] ^= BitShift.RotateLeft32(set[c] + set[b], 13); set[a] ^= BitShift.RotateLeft32(set[d] + set[c], 18); }
private static void QuarterRound(uint[] set, uint a, uint b, uint c, uint d) { set[a] = unchecked (set[a] + set[b]); set[d] = BitShift.RotateLeft32(unchecked (set[d] ^ set[a]), 16); set[c] = unchecked (set[c] + set[d]); set[b] = BitShift.RotateLeft32(unchecked (set[b] ^ set[c]), 12); set[a] = unchecked (set[a] + set[b]); set[d] = BitShift.RotateLeft32(unchecked (set[d] ^ set[a]), 8); set[c] = unchecked (set[c] + set[d]); set[b] = BitShift.RotateLeft32(unchecked (set[b] ^ set[c]), 7); }