private void ProcessBlock(byte[] inputBuffer, uint inputOffset) { this.count += 64UL; uint[] h = this._H; uint[] array = this.buff; SHA1Internal.InitialiseBuff(array, inputBuffer, inputOffset); SHA1Internal.FillBuff(array); uint num = h[0]; uint num2 = h[1]; uint num3 = h[2]; uint num4 = h[3]; uint num5 = h[4]; int i; for (i = 0; i < 20; i += 5) { num5 += (num << 5 | num >> 27) + (((num3 ^ num4) & num2) ^ num4) + 1518500249u + array[i]; num2 = (num2 << 30 | num2 >> 2); num4 += (num5 << 5 | num5 >> 27) + (((num2 ^ num3) & num) ^ num3) + 1518500249u + array[i + 1]; num = (num << 30 | num >> 2); num3 += (num4 << 5 | num4 >> 27) + (((num ^ num2) & num5) ^ num2) + 1518500249u + array[i + 2]; num5 = (num5 << 30 | num5 >> 2); num2 += (num3 << 5 | num3 >> 27) + (((num5 ^ num) & num4) ^ num) + 1518500249u + array[i + 3]; num4 = (num4 << 30 | num4 >> 2); num += (num2 << 5 | num2 >> 27) + (((num4 ^ num5) & num3) ^ num5) + 1518500249u + array[i + 4]; num3 = (num3 << 30 | num3 >> 2); } while (i < 40) { num5 += (num << 5 | num >> 27) + (num2 ^ num3 ^ num4) + 1859775393u + array[i]; num2 = (num2 << 30 | num2 >> 2); num4 += (num5 << 5 | num5 >> 27) + (num ^ num2 ^ num3) + 1859775393u + array[i + 1]; num = (num << 30 | num >> 2); num3 += (num4 << 5 | num4 >> 27) + (num5 ^ num ^ num2) + 1859775393u + array[i + 2]; num5 = (num5 << 30 | num5 >> 2); num2 += (num3 << 5 | num3 >> 27) + (num4 ^ num5 ^ num) + 1859775393u + array[i + 3]; num4 = (num4 << 30 | num4 >> 2); num += (num2 << 5 | num2 >> 27) + (num3 ^ num4 ^ num5) + 1859775393u + array[i + 4]; num3 = (num3 << 30 | num3 >> 2); i += 5; } while (i < 60) { num5 += (num << 5 | num >> 27) + ((num2 & num3) | (num2 & num4) | (num3 & num4)) + 2400959708u + array[i]; num2 = (num2 << 30 | num2 >> 2); num4 += (num5 << 5 | num5 >> 27) + ((num & num2) | (num & num3) | (num2 & num3)) + 2400959708u + array[i + 1]; num = (num << 30 | num >> 2); num3 += (num4 << 5 | num4 >> 27) + ((num5 & num) | (num5 & num2) | (num & num2)) + 2400959708u + array[i + 2]; num5 = (num5 << 30 | num5 >> 2); num2 += (num3 << 5 | num3 >> 27) + ((num4 & num5) | (num4 & num) | (num5 & num)) + 2400959708u + array[i + 3]; num4 = (num4 << 30 | num4 >> 2); num += (num2 << 5 | num2 >> 27) + ((num3 & num4) | (num3 & num5) | (num4 & num5)) + 2400959708u + array[i + 4]; num3 = (num3 << 30 | num3 >> 2); i += 5; } while (i < 80) { num5 += (num << 5 | num >> 27) + (num2 ^ num3 ^ num4) + 3395469782u + array[i]; num2 = (num2 << 30 | num2 >> 2); num4 += (num5 << 5 | num5 >> 27) + (num ^ num2 ^ num3) + 3395469782u + array[i + 1]; num = (num << 30 | num >> 2); num3 += (num4 << 5 | num4 >> 27) + (num5 ^ num ^ num2) + 3395469782u + array[i + 2]; num5 = (num5 << 30 | num5 >> 2); num2 += (num3 << 5 | num3 >> 27) + (num4 ^ num5 ^ num) + 3395469782u + array[i + 3]; num4 = (num4 << 30 | num4 >> 2); num += (num2 << 5 | num2 >> 27) + (num3 ^ num4 ^ num5) + 3395469782u + array[i + 4]; num3 = (num3 << 30 | num3 >> 2); i += 5; } h[0] += num; h[1] += num2; h[2] += num3; h[3] += num4; h[4] += num5; }