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

标签 c++ c cryptography

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

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 软件 key 存储提供程序”所具有的东西。

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

谢谢。

最佳答案

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

关于c++ - 无法将 PFX 导入 Microsoft 示例 key 存储提供程序(加密提供程序开发工具包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37002314/

相关文章:

c - 如何在c中不使用头文件编写hello world

CryptoApi 到 CommonCrypto

encryption - 练习密码分析和密码学技术的工具

C++ 套接字对不读/写父/子

c - 多客户端服务器套接字不打印客户端消息

c++ - 为什么 C++ 允许在运行时将数组大小传递给函数以构造固定大小的数组?

c - glibc中带有__NR_前缀的符号是什么?

security - 数字签名与 HMAC 与通过 DH 的 key

c++ - 创建以 vector/列表迭代器为键的 map

c++ - 如何用查找表代替 Sin 函数?