2012-11-17 60 views
2

我需要导出证书从公共和私有RSA密钥,存储在PKCS#12格式,在Windows上。CryptExportKey:如何从PKCS#12存储导出私钥?

我可以用CertOpenStore()打开证书库,然后用CertFindCertificateInStore()查找证书并获得CryptAcquireCertificatePrivateKey()的私钥。

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

CryptExportKey()与blob类型PRIVATEKEYBLOB失败。 CryptSetKeyParam()KP_PERMISSIONS和设置权限CRYPT_EXPORT也会失败。

我怎么能得到在这种情况下,所有的RSA密钥对的参数?

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

回答

0

找到解决办法:如果用更具体的PFXImportCertStore()打开PKCS#12文件,而不是通用CertOpenStore()CERT_STORE_PROV_PKCS12存储提供者,它接受标志CRYPT_EXPORTABLE和关键可以用CryptExportKey()出口。

相关问题