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



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

如果我使用CryptGenKey,我可以调用CryptExportPublicKeyInfo和CryptImportPublicKeyInformation来获得公钥句柄。然而,当我试图用从PEM解码并使用导入的私钥做同样的事情时

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

私钥导入成功,我有一个有效的句柄,但随后对CryptExportPublicKeyInfo的调用失败,并出现"key不存在"错误。看起来CryptImportKey和CryptExportPublicKeyInfo之间缺少另一个调用,但我找不到那个API调用。

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

最新更新