CertRetrieveLogoOrBiometricInfo 函数 (wincrypt.h)
CertRetrieveLogoOrBiometricInfo 函数对szOID_LOGOTYPE_EXT或szOID_BIOMETRIC_EXT证书扩展中指定的徽标或生物识别信息执行 URL 检索。 szOID_BIOMETRIC_EXT扩展 (IETF RFC 3739) 支持添加证书持有人的签名或图片表示形式。 szOID_LOGOTYPE_EXT扩展 (IETF RFC 3709) 支持在证书中添加组织图形表示形式。
语法
BOOL CertRetrieveLogoOrBiometricInfo(
[in] PCCERT_CONTEXT pCertContext,
[in] LPCSTR lpszLogoOrBiometricType,
[in] DWORD dwRetrievalFlags,
[in] DWORD dwTimeout,
[in] DWORD dwFlags,
void *pvReserved,
[out] BYTE **ppbData,
[out] DWORD *pcbData,
[out] LPWSTR *ppwszMimeType
);
参数
[in] pCertContext
包含证书 的CERT_CONTEXT 结构的地址。
[in] lpszLogoOrBiometricType
包含 对象标识符 的以 null 结尾的 ANSI 字符串的地址 (OID) 字符串,用于标识要检索的信息类型。
此参数还可以包含以下预定义值之一。
[in] dwRetrievalFlags
一组指定如何检索信息的标志。 此参数作为 CryptRetrieveObjectByUrl 函数中的 dwRetrievalFlags 传递。
[in] dwTimeout
等待检索的最长时间(以毫秒为单位)。
[in] dwFlags
未使用此参数,它必须为零。
pvReserved
不使用此参数,必须为 NULL。
[out] ppbData
接收徽标类型或生物识别数据的 BYTE 指针的地址。 当不再需要此内存时,必须通过将此指针传递给 CryptMemFree 函数来释放此内存。
[out] pcbData
接收 ppbData 缓冲区中的字节数的 DWORD 变量的地址。
[out] ppwszMimeType
指向以 null 结尾的 Unicode 字符串的指针的地址,该字符串接收多用途 Internet 邮件扩展 (MIME) 数据类型。 如果不需要此信息,此参数可以为 NULL 。 当不再需要此内存时,必须通过将此指针传递给 CryptMemFree 函数来释放此内存。
对于生物识别类型,此地址始终接收 NULL 。 在尝试访问内存之前,必须始终确保此参数包含有效的内存地址。
返回值
如果成功,则返回非零值,否则返回零。
有关扩展的错误信息,请调用 GetLastError。 GetLastError 函数返回的可能错误代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
|
计算的哈希值与证书中的哈希值不匹配。 |
|
证书不包含 szOID_LOGOTYPE_EXT 或 szOID_BIOMETRIC_EXT 扩展,或者找不到指定的 lpszLogoOrBiometricType 。 |
|
一个或多个参数无效。 |
|
无法从证书扩展插件指定的 URL 检索任何数据。 |
|
证书不支持所需的扩展。 |
|
哈希算法 OID 未知。 |
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |