private static EncryptedSymmetric EncryptSymmetric(string message) { EncryptedSymmetric encrypted; using (var symmetric = CryptHandler.CreateSymmetric()) { symmetric.GenerateIV(); symmetric.GenerateKey(); using (var ms = new System.IO.MemoryStream()) { using (var cs = new CryptoStream(ms, symmetric.CreateEncryptor(), CryptoStreamMode.Write)) { using (var writer = new StreamWriter(cs, CryptHandler.Encoding)) { writer.Write(message); } } encrypted = new EncryptedSymmetric() { Name = symmetric.GetType().BaseType.Name, IV = symmetric.IV, Key = symmetric.Key, Encrypted = ms.ToArray() }; } symmetric.Clear(); } return(encrypted); }
private static string DecryptSymmetric(byte[] message, byte[] iv, byte[] key) { var plainText = ""; using (var symmetric = CryptHandler.CreateSymmetric()) { using (var ms = new System.IO.MemoryStream(message)) { using (var cs = new CryptoStream(ms, symmetric.CreateDecryptor(key, iv), CryptoStreamMode.Read)) { using (var reader = new StreamReader(cs, CryptHandler.Encoding)) { plainText = reader.ReadToEnd(); reader.Close(); } } } symmetric.Clear(); } return(plainText); }