using System.IO; using System.Threading.Tasks; namespace System.Security.Encryption { public interface ISymmetricEncrypter { Stream GetEncryptionStream(string key, string iv, Stream outStream); Stream GetEncryptionStream(byte[] key, byte[] iv, Stream outStream); Stream GetDecryptionStream(string key, string iv, Stream inStream); Stream GetDecryptionStream(byte[] key, byte[] iv, Stream inStream); Task Encrypt(string key, string iv, string value); Task Encrypt(byte[] key, byte[] iv, string value); Task Encrypt(string key, string iv, byte[] value); Task Encrypt(byte[] key, byte[] iv, byte[] value); Task Encrypt(string key, string iv, Stream value); Task Encrypt(byte[] key, byte[] iv, Stream value); Task Decrypt(string key, string iv, string value); Task Decrypt(byte[] key, byte[] iv, string value); Task Decrypt(string key, string iv, byte[] value); Task Decrypt(byte[] key, byte[] iv, byte[] value); Task Decrypt(string key, string iv, Stream value); Task Decrypt(byte[] key, byte[] iv, Stream value); } }