如何在已添加公钥后向X509Certificate2添加私钥?

4

我的步骤如下:

  1. Create X509Certificate2 with public key:

    X509Certificate2 clientCertificate = new X509Certificate2("public key certificate blob as byte[]");
    
  2. How do I want to load the private key blob to clientCertificate?


你有哪些类型的 Blob?它们来自哪里? - Dmitriy Konovalov
有关编程的内容翻译如下:有关系吗?我的公钥是以Base64格式表示的字符串。我将此字符串转换为字节数组。私钥是公钥的非对称密钥。私钥与公钥具有相同的格式(Base64),我想将其添加到我的X509证书中。 - Megi Ben Nun
3个回答

2

以防万一,如果有人像我一样在搜索如何从pem文件/私钥生成X509Certificate2时看到了这篇旧帖子:

.Net 5.0框架对此有非常简化的方法:

var certPem = File.ReadAllText("cert.pem");
var eccPem = File.ReadAllText("ecc.pem");
var cert = X509Certificate2.CreateFromPem(certPem, eccPem);

(来源:https://www.scottbrady91.com/C-Sharp/PEM-Loading-in-dotnet-core-and-dotnet


2

不起作用...我猜问题不在于RSACryptoServiceProvider。我需要一个通用的解决方案来解决这个问题。我的问题是 - 我正在处理 WLAN 配置,当我的用户配置无线配置文件时,他会给我一个公钥文件和另一个私钥文件。 - Megi Ben Nun
顺便提一下 - 该证书是RSA证书。但是当我执行下一行代码 - csp.ImportCspBlob(privateKeyBlob);时,我遇到了一个异常... :( - Megi Ben Nun
你能发布它吗?私钥容器使用什么文件格式? - Dmitriy Konovalov
1
我不能发布私钥 :(。 - Megi Ben Nun
哦,不好了!我的意思是异常文本!你写道:“但是当我执行下一行 - csp.ImportCspBlob(privateKeyBlob);时,我遇到了一个异常... :(”。你能发布异常详细信息吗? - Dmitriy Konovalov
{System.Security.Cryptography.CryptographicException: 提供程序版本错误。 在 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) 中抛出异常 在 System.Security.Cryptography.Utils._ImportCspBlob(Byte[] keyBlob, SafeProvHandle hProv, CspProviderFlags flags, SafeKeyHandle& hKey) 中导入 CSP Blob 在 System.Security.Cryptography.Utils.ImportCspBlobHelper(CspAlgorithmType keyType, Byte[] keyBlob, Boolean publicOnly, CspParameters& parameters, Boolean randomKeyContainer, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle) 中导入 CSP Blob 帮助器。 - Megi Ben Nun

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接