CertGetCTLContextProperty 函数 (wincrypt.h)
CertGetCTLContextProperty 函数检索证书信任列表的扩展属性 (CTL) 上下文。
语法
BOOL CertGetCTLContextProperty(
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwPropId,
[out] void *pvData,
[in, out] DWORD *pcbData
);
参数
[in] pCtlContext
指向 CTL_CONTEXT 结构的指针。
[in] dwPropId
标识要检索的属性。 下表列出了 pvData 中当前定义的标识符和要返回的数据类型。
值 | 含义 |
---|---|
|
pvData 的数据类型:指向 DWORD 的指针
返回一个 DWORD 值,该值指示对证书的写入操作是否持久化。 如果证书位于内存存储中或以只读身份打开的基于注册表的存储中,则不会设置 DWORD 值。 |
|
pvData 的数据类型:NULL
指示枚举期间跳过证书。 通过显式搜索操作(例如用于查找具有特定哈希或序列号的证书)找到具有此属性集的证书。 pvData 中没有数据与此属性关联。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回一个 以 null 结尾的 Unicode 字符串,该字符串命名已为其自动注册证书的证书类型。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回包含 抽象语法表示法 One 的字节数组 (ASN.1) 编码 CTL_USAGE 结构。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回证书 UI 显示的属性。 此属性允许用户描述证书的用法。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回包含 ASN.1 编码 CERT_ENHKEY_USAGE 结构的字节数组。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回一个 以 null 结尾的 Unicode 字符串,该字符串包含 CTL 的显示名称。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回 SHA1 哈希。 如果该哈希不存在,则使用 CryptHashCertificate 进行计算。 |
|
pvData 的数据类型:指向CERT_KEY_CONTEXT的指针
返回 CERT_KEY_CONTEXT 结构。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 如果不存在,请搜索szOID_SUBJECT_KEY_IDENTIFIER扩展。 如果失败,则会对证书的 SubjectPublicKeyInfo 成员执行 SHA1 哈希,以生成标识符值。 |
|
pvData 的数据类型:指向 HCRYPTPROV 的指针
返回从 CERT_KEY_CONTEXT_PROP_ID获取的提供程序句柄。 |
|
pvData 的数据类型:指向CRYPT_KEY_PROV_INFO结构的指针 返回指向 CRYPT_KEY_PROV_INFO的指针。 |
|
pvData 的数据类型:指向 DWORD 的指针
返回一个 DWORD 值,该值指定从 CERT_KEY_CONTEXT_PROP_ID 属性获取的私钥(如果存在)。 否则,如果存在CERT_KEY_PROV_INFO_PROP_ID,则为 dwKeySpec 的源。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回 MD5 哈希。 如果该哈希不存在,则使用 CryptHashCertificate 进行计算。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回 ASN.1 编码 CERT_ALT_NAME_INFO 结构。 CERT_NEXT_UPDATE_LOCATION_PROP_ID目前仅用于 CTL。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回一个 以 null 结尾的 Unicode 宽字符串,该字符串指定包含与证书公钥关联的私钥的文件名。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回 SHA1 哈希。 如果该哈希不存在,则使用 CryptHashCertificate 进行计算。 |
|
pvData 的数据类型:指向 BYTE 数组的指针 返回签名哈希。 如果哈希不存在,则使用 CryptHashToBeSigned 计算该哈希。 对于 SHA,哈希的长度为 20 个字节,MD5 的长度为 16 个字节。 |
对于所有其他属性标识符,pvData 指向字节数组,而不是 CertSetCertificateContextProperty 中 pvData 参数所指向的CRYPT_DATA_BLOB。
有关每个属性标识符的详细信息,请参阅 CertSetCertificateContextProperty 中 dwPropId 参数的文档。 CERT_SHA1_HASH_PROP_ID和CERT_NEXT_UPDATE_LOCATION_PROP_ID是最感兴趣的预定义属性。
[out] pvData
指向缓冲区的指针,用于接收由 dwPropId 确定的数据。 返回的结构的成员指向的结构也会在基本结构之后返回。 因此, 在板数据 中包含的大小通常超过基本结构的大小。
此参数可以为 NULL ,用于设置信息的大小以用于内存分配。 有关详细信息,请参阅 检索长度未知的数据。
[in, out] pcbData
指向 DWORD 值的指针,该值指定 pvData 参数指向的缓冲区的大小(以字节为单位)。 函数返回时, DWORD 值包含要存储在缓冲区中的字节数。
返回值
如果函数成功,则返回值为 TRUE。
如果函数失败,则返回值为 FALSE。
调用的函数 CryptHashCertificate 中的错误可以传播到此函数。 有关扩展的错误信息,请调用 GetLastError。
一些可能的错误代码随之而来。
返回代码 | 说明 |
---|---|
|
CTL 没有指定的属性。 |
|
如果 pvData 参数指定的缓冲区不够大,无法容纳返回的数据,该函数将设置ERROR_MORE_DATA代码,并将所需的缓冲区大小(以字节为单位)存储在 由ERROR_MORE_DATA Data 指向的变量中。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |