Шифрование с использованием Openssl и аутентификация C#
Я пытаюсь зашифровать с помощью openssl, а также аутентифицировать сообщение с помощью AE или AEAD. Я включаю ManagedOpenSsl DLL в моем проекте. Пожалуйста, найдите код ниже
//Encryption
String password = "Testing OPENSSL";
using (var cc = new CipherContext(Cipher.AES_128_CBC))
{
//Constructing key and init vector from string password
byte[] passwordBytes = Encoding.UTF8.GetBytes(password);
byte[] key = Encoding.UTF8.GetBytes("asdfghjklpoiuytr");
byte[] iv = Encoding.UTF8.GetBytes("asdfghjklpoiuytr");
//Performing encryption thru unmanaged wrapper
var aesData = cc.Crypt(buf, key, iv, true);
string a = Encoding.UTF8.GetString(aesData);
lock (SnmpUdpClient.Client)
{
SnmpUdpClient.Client.Send(buf, idx, gaddr.IPEndPoint);
}
}
//Encryption
Этот код шифрует сообщение с использованием AES_128_CBC. Я прочитал, что для шифрования и аутентификации сообщения может использоваться метод CCM/GCM. Но dll, который я включил, не поддерживает метод CCM/GCM.
Может кто-нибудь сказать, если я делаю что-то не так? Библиотека OpenSSL в C# поддерживает аутентификацию?
Если нет, то какой должен быть правильный подход к переезду. Также обратите внимание, что шифрование выполняется в C#, а часть дешифрования - в c (ОС QNX).