首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将BouncyCastle X509Certificate +私钥导入

将BouncyCastle X509Certificate +私钥导入
EN

Stack Overflow用户
提问于 2015-11-16 13:29:39
回答 1查看 2.2K关注 0票数 0

我尝试过通过一个X509Certificate RsaPrivateCrtKeyParameters+ .NET X509Certificate2 + RSACryptoServiceProvider实例导入一个基于Bouncy城堡的.NET实例,并将其保存到证书存储中(.NET的X509Store,My/CurrentUser)。

在证书存储MMC管理单元中,似乎有一个与证书相关联的私钥,并且我已经验证在磁盘上的适当位置创建了一个新的密钥容器,但是当我试图导出证书时,我得到了令人生畏的“注意:找不到关联的私钥。只能导出证书”消息。

如果我运行certutil -user -repairstore我的拇指指纹,我会得到以下错误:

错误:证书公钥与存储的密钥集不匹配

从它发出的其他信息中,我可以清楚地看到公钥不同,算法参数在证书公钥上等于"05 00“,而在容器公钥上则不是。

事实上,我不知道有一个容器公钥的概念,所以我现在非常困惑。有人有这样做的工作代码吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-16 17:07:31

我在Cabadam的回答中找到了解决方案:https://social.msdn.microsoft.com/Forums/vstudio/en-US/ad01b2eb-1890-431a-86ae-e5da0e02b5b0/cryptographicexception-key-does-not-exist-when-attempting-to-connect-to-remote-service

代码语言:javascript
复制
RSACryptoServiceProvider tempRcsp = (RSACryptoServiceProvider)DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)keyPair.Private);
  RSACryptoServiceProvider rcsp = new RSACryptoServiceProvider(new CspParameters(1, "Microsoft Strong Cryptographic Provider", new Guid().ToString(), new CryptoKeySecurity(), null));
  rcsp.ImportCspBlob(tempRcsp.ExportCspBlob(true));
  dotnetCertificate2.PrivateKey = rcsp;
// Save the certificate to the X509Store
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33736604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档