У меня есть сборка, скомпилированная с помощью. NET Framework 2.0 (да, довольно старые вещи), которая выполняет шифрование с помощью открытого ключа c сертификата. Код очень прост:
X509Certificate2 objCert = new X509Certificate2(path);
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)objCert.PublicKey.Key;
byte [] EncrRes = rsa.Encrypt(data, false);
Это продолжает работать со всеми последними версиями. NET Framework, но отказывается работать в. NET Core. Я получил два разных, но похожих сообщения об ошибках.
Windows 10: Невозможно привести объект типа 'System.Security.Cryptography.RSACng' к типу System.Security.Cryptography.RSACryptoServiceProvider '.
Linux: Невозможно выполнить приведите объект типа 'System.Security.Cryptography.RSAOpenSsl' к типу System.Security.Cryptography.RSACryptoServiceProvider '.
Есть ли способ кодирования этой простой операции, чтобы она работала в обоих случаях. NET Framework 2.0+ и. NET ядро?
Заранее спасибо.