private void DoUpdate(byte[] data, int off, long databitlen)
{
if ((databitlen % 8) == 0)
{
Absorb(data, off, databitlen);
}
else
{
Absorb(data, off, databitlen - (databitlen % 8));
byte[] lastByte = new byte[1];
lastByte[0] = (byte)(data[off + (int)(databitlen / 8)] >> (int)(8 - (databitlen % 8)));
Absorb(lastByte, off, databitlen % 8);
}
}