CryptGetKeyIdentifierProperty 函数 (wincrypt.h)
语法
BOOL CryptGetKeyIdentifierProperty(
[in] const CRYPT_HASH_BLOB *pKeyIdentifier,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] LPCWSTR pwszComputerName,
[in] void *pvReserved,
[out] void *pvData,
[in, out] DWORD *pcbData
);
参数
[in] pKeyIdentifier
指向包含密钥标识符 的CRYPT_HASH_BLOB 的指针。
[in] dwPropId
标识要检索的属性。 dwPropId 的值确定 pvData 参数的类型和内容。 可以使用任何证书属性 ID。
[in] dwFlags
可以使用以下标志。 它们可以与按位 OR 运算组合使用。
[in] pwszComputerName
指向要搜索的远程计算机名称的指针。 如果设置了CRYPT_KEYID_MACHINE_FLAG标志,请在远程计算机上搜索密钥标识符列表。 如果要搜索本地计算机而不是远程计算机,请将 pwszComputerName 设置为 NULL。
[in] pvReserved
保留供将来使用,必须为 NULL。
[out] pvData
指向缓冲区的指针,用于接收由 dwPropId 确定的数据。 pvData 结构中字段指向的元素遵循 结构。 因此, 在板Data 中包含的大小可能会超过结构的大小。
如果 dwPropId 是CERT_KEY_PROV_INFO_PROP_ID, 则 pvData 指向包含密钥标识符属性的 CRYPT_KEY_PROV_INFO 结构。
如果未CERT_KEY_PROV_INFO_PROP_ID dwPropId , 则 pvData 指向包含密钥标识符属性的字节数组。
若要获取此信息的大小以用于内存分配,如果未设置CRYPT_KEYID_ALLOC_FLAG,此参数可以为 NULL 。 有关详细信息,请参阅 检索长度未知的数据。
设置CRYPT_KEYID_ALLOC_FLAG时, pvData 是指向要更新的缓冲区的指针的地址。 由于已分配内存,并且其指针存储在 *pvData 上, 因此 pvData 不得为 NULL。
[in, out] pcbData
指向 DWORD 的指针,其中包含 pvData 参数指向的缓冲区的大小(以字节为单位)。 函数返回时, DWORD 包含缓冲区中存储的字节数。 由CRYPT_KEY_PROV_INFO指向的变量中包含的大小可以指示大于CRYPT_KEY_PROV_INFO结构的大小,因为结构可以包含指向辅助数据的指针。 此大小是结构和所有辅助数据所需的大小之和。
设置CRYPT_KEYID_ALLOC_FLAG时, “CRYPT_KEYID_ALLOC_FLAG”是 指向将更新的 DWORD 的指针的地址。
返回值
如果函数成功,则函数) 返回非零 (TRUE 。
如果函数失败,则返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |