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

Visual c++ 如何从pfx获取asn格式的私钥?,visual-c++,private-key,cryptoapi,pfx,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(...) 但是我有私钥,我不知道如何使用

如何从pfx获取asn格式的私钥?我需要获取asn格式的私钥,将其放入Qt的变量QSslKey以连接https服务器

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

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

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

但是我有私钥,我不知道如何使用它

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

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

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

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

请参阅函数

 **capi_load_privkey() and subfunction capi_get_pkey()**
这里完成了密钥blob到OpenSSL兼容结构的转换。 希望这有帮助