ICryptoTransform.TransformFinalBlock vs ICryptoTransform.TransformBlock

.net

Solution

You should be using a CryptoStream, which will automatically call the correct `ICryptoTransform` methods.

For example:

var stream = new MemoryStream();
using (var transform = symAlgo.CreateEncryptor())
using (var cryptoStream = new CryptoStream(stream, transform, CryptoStreamMode.Write))
using (var writer = new StreamWriter(cryptoStream))
    writer.Write(someString);

byte[] cipherBytes = stream.ToArray();

Problem

I am Learning cryptography in .net, why method 1 works while 2 fired argument exception. See Symmetric Algorithm exception for a complete code 1- ICryptoTransform.TransformFinalBlock 2- ICryptoTransform.TransformBlock Thanks

Original source