// note: this method is garanteed to be called with a valid blocksize
// for both input and output
protected override void ECB(byte[] input, byte[] output)
{
DESTransform.Permutation(input, output, DESTransform.ipTab, false);
if (encrypt)
{
E1.ProcessBlock(output, output);
D2.ProcessBlock(output, output);
E3.ProcessBlock(output, output);
}
else
{
D1.ProcessBlock(output, output);
E2.ProcessBlock(output, output);
D3.ProcessBlock(output, output);
}
DESTransform.Permutation(output, output, DESTransform.fpTab, true);
}