CryptoAPI-如何从私钥中提取RSA公钥

亚历克斯

使用Windows CryptoAPI,是否可以从导入(未生成)的私钥中获取公共RSA密钥?

如果使用CryptGenKey,则可以调用CryptExportPublicKeyInfo和CryptImportPublicKeyInfo来获取公钥句柄。但是,当我尝试使用从PEM解码并使用以下命令导入的私钥做同样的事情时:

CryptImportKey(hCSP, pKeyBuf, cbKeyBuf, 0, CRYPT_EXPORTABLE, &hPrivKey)

私钥的导入成功,并且我具有有效的句柄,但随后对CryptExportPublicKeyInfo的调用失败,并出现“密钥不存在”错误。似乎在CryptImportKey和CryptExportPublicKeyInfo之间缺少另一个调用,但是我找不到该API调用。

亚历克斯

导出/导入公钥的问题是因为私钥是使用AT_SIGNATURE而不是AT_EXCHANGE生成的。参见说明示例代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章