CryptGetMessageCertificates 函数 (wincrypt.h)
CryptGetMessageCertificates 函数返回包含消息证书和 CRL 的打开证书存储的句柄。 此函数使用提供程序类型 CERT_STORE_PROV_PKCS7 作为其 lpszStoreProvider 参数调用 CertOpenStore。
语法
HCERTSTORE CryptGetMessageCertificates(
[in] DWORD dwMsgAndCertEncodingType,
[in] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwFlags,
[in] const BYTE *pbSignedBlob,
[in] DWORD cbSignedBlob
);
参数
[in] dwMsgAndCertEncodingType
指定使用的编码类型。 始终可以接受将证书和 消息编码类型 与按位 OR 操作组合在一起,如以下示例所示:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING
当前定义的编码类型包括:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] hCryptProv
此参数未使用,应设置为 NULL。
Windows Server 2003 和 Windows XP: 传递给 CertOpenStore 的 CSP 的句柄。 有关详细信息,请参阅 CertOpenStore。除非有充分的理由在 hCryptProv 中传递特定的加密提供程序,否则传递零会导致获取默认 RSA 或 DSS 提供程序。
此参数的数据类型为 HCRYPTPROV。
[in] dwFlags
传递给 CertOpenStore 的标志。 有关详细信息,请参阅 CertOpenStore。
[in] pbSignedBlob
指向包含已签名消息的缓冲 CRYPT_INTEGER_BLOB 结构的指针。
[in] cbSignedBlob
已签名消息的大小(以字节为单位)。
返回值
返回包含消息证书和 CRL 的证书 存储 。 对于错误,返回 NULL 。
下面列出了 GetLastError 函数最常返回的错误代码。
返回代码 | 说明 |
---|---|
|
无效的消息和证书编码类型。 目前仅支持PKCS_7_ASN_ENCODING和X509_ASN_ENCODING。 |
如果函数失败, GetLastError 可能会返回 抽象语法表示法 One (ASN.1) 编码/解码错误。 有关这些错误的信息,请参阅 ASN.1 编码/解码返回值。
注解
使用 GetLastError 确定任何错误的原因。
示例
有关使用此函数的示例,请参阅 示例 C 程序:设置和获取证书存储属性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |