CryptSetKeyIdentifierProperty 函数 (wincrypt.h)

重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
 
CryptSetKeyIdentifierProperty 函数设置指定键标识符的 属性。 此函数可以在 pwszComputerName 中标识的计算机上设置 属性。

语法

BOOL CryptSetKeyIdentifierProperty(
  [in]  const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]  DWORD                 dwPropId,
  [in]  DWORD                 dwFlags,
  [in]  LPCWSTR               pwszComputerName,
  [in]  void                  *pvReserved,
  [out] const void            *pvData
);

参数

[in] pKeyIdentifier

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

[in] dwPropId

标识要设置的属性。 dwPropId 的值确定 pvData 参数的类型和内容。 可以使用任何证书属性 ID。 CERT_KEY_PROV_INFO_PROP_ID是最感兴趣的属性。

[in] dwFlags

可以设置以下标志。 它们可以与按位 OR 运算组合使用。

含义
CRYPT_KEYID_MACHINE_FLAG
如果 pwszComputerName) 为 NULL ,则设置 LocalMachine (的 属性;如果 pwszComputerName 不是 NULL) ,则设置远程计算机 (。 有关详细信息,请参阅 pwszComputerName
CRYPT_KEYID_DELETE_FLAG
将删除密钥标识符及其所有属性。
CRYPT_KEYID_SET_NEW_FLAG
设置新的密钥标识符属性。 如果该属性已存在,则尝试将失败,并且返回 FALSE ,最后一个错误代码设置为 CRYPT_E_EXISTS。

[in] pwszComputerName

指向以 null 结尾的字符串的指针,该字符串包含具有设置属性的密钥标识符的远程计算机的名称。 如果设置了CRYPT_KEYID_MACHINE_FLAG标志,则搜索远程计算机的密钥标识符列表。 如果要设置本地计算机而不是远程计算机,请将 pwszComputerName 设置为 NULL

[in] pvReserved

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

[out] pvData

如果 dwPropId CERT_KEY_PROV_INFO_PROP_ID, 则 pvData 指向包含密钥标识符属性 的 CRYPT_KEY_PROV_INFO 结构。

如果未CERT_KEY_PROV_INFO_PROP_ID dwPropId则 pvData 指向包含密钥标识符属性 的CRYPT_DATA_BLOB 结构。

pvData 设置为 NULL 会删除 属性。

返回值

如果函数成功,则返回值为非零 (TRUE) 。

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

注意 如果设置了CRYPT_KEYID_SET_NEW_FLAG并且属性已存在,则返回 FALSE ,最后一个错误代码设置为 CRYPT_E_EXISTS。
 

要求

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

另请参阅

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

密钥标识符函数