CryptEnumKeyIdentifierProperties 函数 (wincrypt.h)

重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
 
CryptEnumKeyIdentifierProperties 函数枚举密钥标识符及其属性。 此函数不会在循环中调用。 相反,它会在内部循环,直到枚举最后一个键标识符属性或回调函数返回 FALSE。 如果 dwPropId 为零,或者键标识符的属性与 dwPropId 匹配,则调用回调函数。

语法

BOOL CryptEnumKeyIdentifierProperties(
  [in, optional] const CRYPT_HASH_BLOB     *pKeyIdentifier,
  [in]           DWORD                     dwPropId,
  [in]           DWORD                     dwFlags,
  [in, optional] LPCWSTR                   pwszComputerName,
  [in]           void                      *pvReserved,
  [in, optional] void                      *pvArg,
  [in]           PFN_CRYPT_ENUM_KEYID_PROP pfnEnum
);

参数

[in, optional] pKeyIdentifier

指向包含密钥标识符 的CRYPT_HASH_BLOB 结构的指针。

如果 pKeyIdentifierNULL,则该函数枚举所有密钥标识符。

如果 pKeyIdentifier 不为 NULL,则仅对指定的密钥标识符调用回调函数 pfnEnum

[in] dwPropId

指示要列出的属性标识符。

如果 dwPropId 设置为零,则此函数使用所有属性调用回调函数。

如果 dwPropId 不为零且 pKeyIdentifierNULL,则仅对具有指定属性的键标识符调用回调函数, (将 pfnEnumcProp 参数设置为一个) 。 跳过所有没有 属性的密钥标识符。

可以使用任何证书属性标识符。

[in] dwFlags

默认情况下,搜索 CurrentUser 的密钥标识符列表。 如果设置了CRYPT_KEYID_MACHINE_FLAG,则如果 pwszComputerNameNULL) ,则 LocalMachine 的密钥标识符列表 (;如果 ) 搜索 pwszComputerName 不是 NULL ,则为远程计算机 (。 有关详细信息,请参阅 pwszComputerName

[in, optional] pwszComputerName

指向要搜索的远程计算机名称的指针。 如果在 dwFlags 中设置了CRYPT_KEYID_MACHINE_FLAG,则会在远程计算机中搜索密钥标识符列表。 如果要搜索本地计算机而不是远程计算机, 则 pwszComputerName 设置为 NULL

[in] pvReserved

保留供将来使用,必须为 NULL

[in, optional] pvArg

指向要传递给回调函数的数据的指针。 类型是一个 void,它允许应用程序声明、定义和初始化结构或参数以保存任何信息。

[in] pfnEnum

指向应用程序定义的回调函数的指针,该回调函数针对与输入参数匹配的每个键标识符条目执行。 有关回调函数参数的详细信息,请参阅 CRYPT_ENUM_KEYID_PROP

返回值

CryptEnumKeyIdentifierProperties 函数会重复调用 CRYPT_ENUM_KEYID_PROP 回调函数,直到枚举最后一个密钥标识符或回调函数返回 FALSE

如果main函数成功,该函数将返回非零 (TRUE) 。

如果函数失败,则返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError

若要继续枚举,函数将返回 TRUE

若要停止枚举,函数将返回 FALSE 并设置最后一个错误代码。

注解

密钥标识符可以具有与 证书上下文相同的属性。

示例

有关使用此函数的示例,请参阅 示例 C 程序:使用密钥标识符

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

基本加密函数

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty