private void decrypt(byte[] value, BlowfishEngine bf)
{
int blockSize = bf.GetBlockSize();
byte[] vector = new byte[blockSize];
for (int i = 0; i < blockSize; i++)
vector[i] = 0;
for (int i = 0; i < value.Length; i += blockSize)
{
byte[] tmp = new byte[blockSize];
bf.ProcessBlock(vector, 0, tmp, 0);
int chunk = Math.Min(blockSize, value.Length - i);
for (int j = 0; j < chunk; j++)
{
vector[j] = value[i + j];
value[(i + j)] = (byte)(value[(i + j)] ^ tmp[j]);
};
};
}