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 可能会返回 抽象语法表示法 1 (ASN.1) 编码/解码错误。 有关这些错误的信息,请参阅 ASN.1 编码/解码返回值。
言论
此函数当前调用 CryptVerifyCertificateSignatureEx 函数来执行验证。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | wincrypt.h |
库 | Crypt32.lib |
DLL | Crypt32.dll |