public void SetHashKey(int number, int generation)
{
if (revision == AES_256)
return;
md5.Reset(); //added by ujihara
extra[0] = (byte)number;
extra[1] = (byte)(number >> 8);
extra[2] = (byte)(number >> 16);
extra[3] = (byte)generation;
extra[4] = (byte)(generation >> 8);
md5.BlockUpdate(mkey, 0, mkey.Length);
md5.BlockUpdate(extra, 0, extra.Length);
if (revision == AES_128)
md5.BlockUpdate(salt, 0, salt.Length);
key = new byte[md5.GetDigestSize()];
md5.DoFinal(key, 0);
md5.Reset();
keySize = mkey.Length + 5;
if (keySize > 16)
keySize = 16;
}