无法将 PFX 导入 Microsoft 示例密钥存储提供程序(加密提供程序开发工具包)

Posted

技术标签:

【中文标题】无法将 PFX 导入 Microsoft 示例密钥存储提供程序(加密提供程序开发工具包)【英文标题】:Can't import PFX to Microsoft Sample Key Storage Provider (Cryptographic Provider Development Kit) 【发布时间】:2016-05-03 11:02:07 【问题描述】:

我正在尝试执行“加密提供程序开发工具包”提供的示例;在这种情况下,一个专门称为 KeyStorageProviderSample 的示例。在此示例中,只需执行带有 -register 参数的 .exe,即可​​在系统中创建一个名为“Microsoft Sample Key Storage Provider”的新密钥存储提供程序:

symmclient -register

此时一切正常;如果我列出系统中的 KSP,我会得到完整的列表:

symmclient -enum

列出了刚刚创建的“Microsoft Sample Key Storage Provider”。但是,当我尝试将 PFX 证书导入其中时,它不起作用:

Certutil -CSP "Microsoft Sample Key Storage Provider" -user -importPFX  "mycert.pfx"

我收到 0x80090009 错误。针对“Microsoft Software Key Storage Provider”执行的相同命令可以完美运行。此示例中创建的 KSP 似乎缺少“Microsoft Software Key Storage Provider”所具有的内容。

创建自己的 KSP 需要什么?我使用的是 Windows 7 专业版。

谢谢。

【问题讨论】:

【参考方案1】:

我认为原因是因为示例 KSP 使用自定义结构 (SAMPLEKSP_KEY) 来存储密钥,而不是 PFX 兼容的结构,例如 _BCRYPT_RSAKEY_BLOB

【讨论】:

以上是关于无法将 PFX 导入 Microsoft 示例密钥存储提供程序(加密提供程序开发工具包)的主要内容,如果未能解决你的问题,请参考以下文章

使用 PFX 进行强命名

Jenkins无法导入以下密钥文件

org.opensaml.common.SAMLRuntimeException:无法获取 SP 签名密钥

强名称 sn.exe:无法安装密钥对 -- 对象已存在

多开发人员环境中 PFX 文件的最佳实践

pfx是啥文件