小编cry*_*ker的帖子

CertFindCertificateInStore 无法加载在不同机器上生成的自签名证书

我正在尝试加载在不同主机上生成并导入到我的机器上的自签名证书。证书已导入并正确显示在 mmc 中。但是,当通过 SHA1 指纹搜索时,CertFindCertificateInStore 无法加载。

这是代码:

const LPWSTR    certThumbprint   = L"2af92932d0164f52b20b1ccfdf0e1e4d525fbc08";

CryptStringToBinary(certThumbprint, SHA1_HASH_STRING_LENGTH,  CRYPT_STRING_HEXRAW,    NULL, &dwHashDataLength, NULL,NULL);

pHashData = new BYTE[dwHashDataLength];

CryptStringToBinary(certThumbprint,SHA1_HASH_STRING_LENGTH,CRYPT_STRING_HEXRAW,pHashData,&dwHashDataLength,NULL, NULL);

hashBlob.cbData = dwHashDataLength;
hashBlob.pbData = pHashData;

if ( !(pCertContext = CertFindCertificateInStore(
    hSystemCertStore,
    X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
    0,
    CERT_FIND_SHA1_HASH,
    &hashBlob,
    NULL)))
{
    printf("\n finding cert in system store failed: %d \n", GetLastError());
    exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

c c++ crypt certificate public-key-encryption

5
推荐指数
0
解决办法
1598
查看次数

标签 统计

c ×1

c++ ×1

certificate ×1

crypt ×1

public-key-encryption ×1