private byte[] NonMultipleOfBlockSize_Decrypt (ICryptoTransform ct, byte[] data) { DebugStream stream = new DebugStream (data); CryptoStream CryptStream = new CryptoStream (stream, ct, CryptoStreamMode.Read); int len = 0; long myLength = 0; byte[] Buffer = new Byte [1024]; DebugStream fout = new DebugStream (); // each returned block must be 1023 bytes long // even if this isn't a multiple of the block size while ((len = CryptStream.Read (Buffer, 0, 1023)) != 0) { fout.Write (Buffer, 0, len); fout.Flush (); myLength = myLength + len; } byte[] result = fout.ToArray (); CryptStream.Close (); stream.Close (); return result; }