NScumm.MD5.HashCore C# (CSharp) Метод

HashCore() защищенный Метод

MD5 block update operation. Continues an MD5 message-digest operation, processing another message block, and updating the context.
The RFC Named it MD5Update
protected HashCore ( byte input, int offset, int count ) : void
input byte
offset int
count int
Результат void
        protected virtual void HashCore(byte[] input, int offset, int count)
        {
            int i;
            int index;
            int partLen;

            // Compute number of bytes mod 64
            index = (int)((this.count[0] >> 3) & 0x3F);

            // Update number of bits
            if ((this.count[0] += (uint)count << 3) < ((uint)count << 3))
                this.count[1]++;
            this.count[1] += ((uint)count >> 29);

            partLen = 64 - index;

            // Transform as many times as possible.
            if (count >= partLen)
            {
                Buffer.BlockCopy(input, offset, this.buffer, index, partLen);
                Transform(this.buffer, 0);

                for (i = partLen; i + 63 < count; i += 64)
                    Transform(input, offset + i);

                index = 0;
            }
            else
                i = 0;

            // Buffer remaining input
            Buffer.BlockCopy(input, offset + i, this.buffer, index, count - i);
        }