gpt4 book ai didi

cryptoapi - 将私钥关联到 PFXExportCertStoreEx 的证书

转载 作者:行者123 更新时间:2023-12-02 22:31:41 27 4
gpt4 key购买 nike

我正在尝试将证书导出到 pfx 文件。这就是我所做的(简化):

h = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, NULL, CERT_STORE_CREATE_NEW_FLAG, NULL); 
p = CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
CertBlob.pbData, CertBlob.cbData);
CertSetCertificateContextProperty(p, CERT_KEY_PROV_HANDLE_PROP_ID, 0, &hPrivKey);
CertAddCertificateContextToStore(h, p, CERT_STORE_ADD_ALWAYS, NULL);
PFXExportCertStoreEx(h, &SomeBlob, L"", NULL, EXPORT_PRIVATE_KEYS);

PFX 已创建,未导出私钥。有人曾经将私钥导出到 pfx 吗?将私钥附加到证书以便导出的正确方法是什么?

最佳答案

显然,CertSetCertificateContextProperty(p, CERT_KEY_PROV_HANDLE_PROP_ID ...)

不太好。需要这样做:

CRYPT_KEY_PROV_INFO kpi;
ZeroMemory( & kpi, sizeof(kpi) );
kpi.pwszContainerName = "my-container-name";
kpi.dwProvType = PROV_RSA_FULL;
kpi.dwKeySpec = AT_KEYEXCHANGE;
kpi.dwFlags = CRYPT_MACHINE_KEYSET;
CertSetCertificateContextProperty( pCert, CERT_KEY_PROV_INFO_PROP_ID, 0, & kpi);

提供商名称和其他废话必须与用于生成实际 key 的信息相匹配,这一点至关重要。不需要设置提供者句柄或任何类似的东西。它还必须在 CertAddCertificateContextToStore 之前完成。

这是我发现将私钥附加到证书的唯一方法。

关于cryptoapi - 将私钥关联到 PFXExportCertStoreEx 的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/749654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com