Вкл. NET Core (3.1) на платформах Windows и Linux. Я хочу расшифровать сообщение, используя закрытые ключи экземпляров X509Certificiate2. Сертификаты извлекаются из хранилища сертификатов на платформе Windows и из файла PFX на Linux платформах соответственно.
I wi sh для расшифровки сообщения с использованием чего-то вроде:
static byte[] Decrypt(byte[] data, RSAParameters privateKey)
{
using (var rsa = RSA.Create())
{
rsa.ImportParameters(privateKey);
return rsa.Decrypt(data, RSAEncryptionPadding.OaepSHA256);
}
}
Но когда я пытаюсь извлечь закрытый ключ, у меня возникает исключение: «System.Security.Cryptography.CryptographicException: запрошенная операция не поддерживается.»
var privateKey = x509cert.GetRSAPrivateKey();
var privateKeyParams = privateKey.ExportParameters(true); // <-- throws CryptographicException
Чего мне не хватает?