// 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); }