3

我需要从PKCS#12Windows 上以格式存储的证书中导出公共和私有 RSA 密钥。

我可以打开证书存储CertOpenStore(),然后找到证书CertFindCertificateInStore()并获取私钥CryptAcquireCertificatePrivateKey()

它工作正常。然后我用它提取用户密钥CryptGetUserKey()也可以。

但是CryptExportKey()使用 blob 类型PRIVATEKEYBLOB失败。 CryptSetKeyParam()withKP_PERMISSIONS和 set 权限CRYPT_EXPORT也失败。

在这种情况下,如何获取所有 RSA 密钥对参数?

所有示例都CryptGenKey()用于创建然后导出密钥,但我需要将现有密钥对导出为简单的二进制形式。

4

1 回答 1

1

找到的解决方案:如果使用更具体PFXImportCertStore()的方法打开 PKCS#12 文件而不是CertOpenStore()使用CERT_STORE_PROV_PKCS12商店提供程序的通用文件,它接受标志CRYPT_EXPORTABLE和密钥可以用CryptExportKey().

于 2012-11-18T09:09:12.860 回答