public static byte[] Encrypt128Byte(Stream Data, byte[] Key)
{
AesCryptoServiceProvider AES = null;
var MS = new MemoryStream();
CryptoStream CS = null;
BinaryReader DR = null;
try
{
//Get the IV and length corrected Key.
KeyData KeyData = GenerateKeyIV128(Key);
//Create the AES crytpograhy object.
AES = new AesCryptoServiceProvider { BlockSize = 128, KeySize = 128, Key = KeyData.Key, IV = KeyData.IV, Mode = CipherMode.CBC, Padding = PaddingMode.PKCS7 };
CS = new CryptoStream(MS, AES.CreateEncryptor(), CryptoStreamMode.Write);
DR = new BinaryReader(Data);
var D = new byte[DR.BaseStream.Length];
DR.Read(D, 0, (int)DR.BaseStream.Length - 1);
CS.Write(D, 0, D.Length);
CS.FlushFinalBlock();
return MS.ToArray();
}
finally
{
if (AES != null) AES.Clear();
if (CS != null) CS.Dispose();
MS.Dispose();
if (DR != null) DR.Close();
}
}