protected byte[] PadBuffer()
{
int padding;
int n = (int)(hashedLength % BLOCKLENGTH);
if (n < 56) padding = 56 - n; else padding = 120 - n;
long bits = hashedLength << 3;
byte[] pad = new byte[padding + 8];
pad[0] = 0x80;
pad[padding] = (byte)(bits & 0xFF);
pad[padding + 1] = (byte)(bits >> 8 & 0xFF);
pad[padding + 2] = (byte)(bits >> 16 & 0xFF);
pad[padding + 3] = (byte)(bits >> 24 & 0xFF);
pad[padding + 4] = (byte)(bits >> 32 & 0xFF);
pad[padding + 5] = (byte)(bits >> 40 & 0xFF);
pad[padding + 6] = (byte)(bits >> 48 & 0xFF);
pad[padding + 7] = (byte)(bits >> 56 & 0xFF);
return pad;
}