Reading up on encryption best practices, I see that it is recommended to add MAC to a AES encryption. I'm using AesCryptoServiceProvider because I need to be FIPS compliant. This means, that I'm doing something like this:
private static byte[] Encrypt(byte[] data, byte[] key)
{
using (var algo = new AesCryptoServiceProvider())
{
algo.Key = key;
using (var ct = algo.CreateEncryptor(algo.Key, algo.IV))
return algo.IV.Concat(ct.TransformFinalBlock(data, 0, data.Length)).ToArray();
}
}
However I can't really find any examples of where to yank in the MAC for best practice usage. Any pointers?