using System.IO;

namespace Knot.Shared.Kernel.Security;

public interface IEncryptionService
{
    // Шифрует текст (например, сообщения) для хранения в БД
    string EncryptMessage(string plainText);
    string DecryptMessage(string cipherText);

    // Создает поток шифрования для потоковой передачи файлов "на лету"
    Stream CreateEncryptionStream(Stream unencryptedOutputStream, out byte[] iv);

    // Создает поток дешифрования для чтения файлов "на лету"
    Stream CreateDecryptionStream(Stream encryptedInputStream, byte[] iv);
}
