gpt4 book ai didi

c# - 将私钥转换到 RSACryptoServiceProvider 不起作用

转载 作者:行者123 更新时间:2023-11-30 21:28:53 26 4
gpt4 key购买 nike

我有一个 X509Certificate2 变量,我正在尝试将该变量的私钥转换为 RSACryptoServiceProvider

RSACryptoServiceProvider pkey = (RSACryptoServiceProvider)cert.PrivateKey;

但是我遇到了这个异常。

System.InvalidCastException: 'Unable to cast object of type 'System.Security.Cryptography.RSACng' to type 'System.Security.Cryptography.RSACryptoServiceProvider'.'

发生这种情况很奇怪,因为 SO 中的其他答案建议的过程与我的相同,但我得到一个异常(exception)。有什么解决办法吗?

最佳答案

经过几次尝试和评论中的讨论,我想出了以下解决方案。

            RSA rsa = (RSA)cert.PrivateKey;
(cert.PrivateKey as RSACng).Key.SetProperty(
new CngProperty(
"Export Policy",
BitConverter.GetBytes((int)CngExportPolicies.AllowPlaintextExport),
CngPropertyOptions.Persist));

RSAParameters RSAParameters = rsa.ExportParameters(true);

AsymmetricCipherKeyPair keypair = DotNetUtilities.GetRsaKeyPair(RSAParameters);

问题是变量 rsa 不可导出。为了改变这一点,我为导出策略设置了一个新的 CngProperty。现在完美运行

关于c# - 将私钥转换到 RSACryptoServiceProvider 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55949510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com