如何从pfx获取asn格式的私钥?

时间:2014-01-03 06:41:43

标签: visual-c++ private-key cryptoapi pfx

如何从pfx获取asn格式的私钥?我需要使用asn格式的私钥将Qt的变量QSslKey连接到https服务器。

我必须使用Win32 Api来完成它,我不能使用OpenSSL来转换它。

首先我尝试直接获取私钥:

1.CertOpenSystemStore(NULL, _T("MY"))
2.CryptAcquireCertificatePrivateKey(...)
3.CryptGetUserKey(...)
4.CryptExportKey(...)

但是我得到的私钥,我不知道如何使用它。

1 个答案:

答案 0 :(得分:1)

警告:这不是您问题的确切答案,但我希望它可以帮助您实现想要的目标

根据我的经验,Windows加密API旨在使用证书存储中的私钥而不是将密钥导出到外部,除非您使用CryptoAPI标准函数,如PFXExportCertStoreEx()。

CryptExportKey函数在密钥blob结构中提供私钥/公钥对,您必须将其转换为所需的格式。我见过的最接近的事情是

适用于Windows的Openssl引擎,文件名:e_capi.c

参考功能

 **capi_load_privkey() and subfunction capi_get_pkey()**

这里完成了密钥blob到OpenSSL兼容结构的转换。 希望这有帮助

相关问题