CryptVerifyCertificateSignature 函数 (wincrypt.h)
CryptVerifyCertificateSignature 函数使用CERT_PUBLIC_KEY_INFO结构中的公钥验证证书签名、证书吊销列表 (CRL) 或证书请求。 函数不需要访问 私钥。
语法
BOOL CryptVerifyCertificateSignature(
[in] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwCertEncodingType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[in] PCERT_PUBLIC_KEY_INFO pPublicKey
);
参数
[in] hCryptProv
此参数未使用,应设置为 NULL。
Windows Server 2003 和 Windows XP: 加密服务提供程序的句柄 (用于验证签名的 CSP) 。此参数的数据类型为 HCRYPTPROV。
除非有充分的理由传入特定的加密提供程序,否则会传递 NULL。 传入 NULL 会导致获取默认 RSA 或 DSS 提供程序。
[in] dwCertEncodingType
用于加密主题的 证书编码类型 。 此函数忽略包含在此值的高 WORD 中的消息编码类型标识符。
此参数可以是以下当前定义的证书编码类型。
值 | 含义 |
---|---|
|
指定 X.509 证书编码。 |
[in] pbEncoded
指向要验证签名的内容CERT_SIGNED_CONTENT_INFO编码 BLOB 的指针。
[in] cbEncoded
pbEncoded 中编码内容的大小(以字节为单位)。
[in] pPublicKey
指向 CERT_PUBLIC_KEY_INFO 结构的指针,该结构包含验证签名时要使用的公钥。
返回值
如果成功,则返回非零值,否则返回零。
有关扩展的错误信息,请调用 GetLastError。
返回代码 | 说明 |
---|---|
|
无效的证书编码类型。 目前仅支持 X509_ASN_ENCODING 。 |
|
签名算法 的对象标识符 (OID) 不会映射到已知或支持的 哈希 算法。 |
|
签名无效。 |
如果函数失败, GetLastError 可能会返回 抽象语法表示法 One (ASN.1) 编码/解码错误。 有关这些错误的信息,请参阅 ASN.1 编码/解码返回值。
注解
此函数当前调用 CryptVerifyCertificateSignatureEx 函数来执行验证。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |