【发布时间】:2020-08-30 13:59:28
【问题描述】:
我创建了一个自签名的 RSA 证书并将私钥存储为 .pfx 文件。然后从我的 .Net Core 3.1 代码中,我尝试使用 .pfx 文件实例化 X509Certificate2 对象。 X509Certificate2 实例已成功创建,但从代码“certificate2.GetRSAPrivateKey().ExportParameters(true)”得到一个异常为“不支持请求的操作”。
X509Certificate2 certificate2 = new X509Certificate2(privateKeyData, _privateKeyPwd, X509KeyStorageFlags.Exportable);
RSAParameters rSAParameters = certificate2.GetRSAPrivateKey().ExportParameters(true);
例外: Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException: '不支持请求的操作'。
你能帮帮我吗?
编辑:rSAParameters 将用于解密加密的对称密钥。
rsaProvider.ImportParameters(rSAParameters);
byte[] encryptedSymmetricKey = Convert.FromBase64String(dataKey);
// Decrypt using OAEP padding.
byte[] decryptedSymmetricKey = rsaProvider.Decrypt(encryptedSymmetricKey, fOAEP: true);
【问题讨论】:
-
导出参数的目的是什么?
-
@Crypt32 我需要执行操作“RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(); rsaProvider.ImportParameters(rSAParameters);”
-
你需要
RSACryptoServiceProvider的目的是什么?你能把你的代码展示在你打算在哪里使用它吗? -
@Crypt32 我已经用代码 sn-ps 更新了问题。
-
我相信,旧版
RSACryptoServiceProvider默认为 OAEP SHA1。
标签: rsa x509certificate2 encryption-asymmetric .net-core-3.1 windows-10-desktop