CertFindSubjectInCTL 函数 (wincrypt.h)
CertFindSubjectInCTL 函数尝试在证书信任列表中查找指定的使用者 (CTL) 。 使用者可以通过证书的整个上下文或证书使用者的任何唯一标识符(例如证书颁发者的 SHA1 哈希 和序列号)来标识。
语法
PCTL_ENTRY CertFindSubjectInCTL(
[in] DWORD dwEncodingType,
[in] DWORD dwSubjectType,
[in] void *pvSubject,
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwFlags
);
参数
[in] dwEncodingType
指定使用的编码类型。 目前,仅使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;但是,将来可能会添加其他编码类型。 对于当前任一编码类型,请使用:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] dwSubjectType
指定要在 CTL 中搜索的主题类型。 对于默认搜索,可以为 NULL 。
值 | 含义 |
---|---|
|
pvSubject 数据类型:指向 CERT_CONTEXT 结构的指针。
检查 CTL 的 SubjectAlgorithm 以确定使用者身份的表示形式。 最初,仅支持 SHA1 和 MD5 哈希作为 SubjectAlgorithm 的值。 从 CERT_CONTEXT 结构获取相应的哈希属性。 |
|
pvSubject 数据类型:指向 CTL_ANY_SUBJECT_INFO 结构的指针。
此结构的 SubjectAlgorithm 成员必须与 CTL 的算法类型匹配, SubjectIdentifier 成员必须与其中一个 CTL 条目匹配。 |
证书的哈希或 CTL_ANY_SUBJECT_INFO 结构的 SubjectIdentifier 成员用作搜索使用者条目的键。 在键和条目的 SubjectIdentifier 之间进行二进制内存比较。
如果 dwSubjectType 设置为前面的任一值,则不使用 dwEncodingType 。
[in] pvSubject
与 dwSubjectType 参数结合使用的指针。
[in] pCtlContext
指向正在搜索 CTL_CONTEXT 结构的指针。
[in] dwFlags
保留以供将来使用,必须为零。
返回值
如果函数成功,则返回值为条目(如果找到)。
如果函数失败,则返回值为 NULL。 有关扩展的错误信息,请调用 GetLastError。 下面是一些可能的错误代码。
返回代码 | 说明 |
---|---|
|
在 CTL 中找不到该主题。 |
|
dwSubjectType 参数不是CTL_CERT_SUBJECT_TYPE,也不是CTL_ANY_SUBJECT_TYPE。 |
|
CTL 的 SubjectAlgorithm 成员未映射到 SHA1 或 MD5。 |
注解
证书的哈希或CTL_ANY_SUBJECT_INFO结构的 SubjectIdentifier 成员用作搜索使用者条目的键。 在键和条目的 SubjectIdentifier 之间进行二进制内存比较。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |