CertGetIntendedKeyUsage 函数 (wincrypt.h)

CertGetIntendedKeyUsage 函数从证书中获取预期的密钥用法字节。 预期的密钥用法可以是szOID_KEY_USAGE (“2.5.29.15”) 或szOID_KEY_ATTRIBUTES (“2.5.29.2”) 扩展。

语法

BOOL CertGetIntendedKeyUsage(
  [in]  DWORD      dwCertEncodingType,
  [in]  PCERT_INFO pCertInfo,
  [out] BYTE       *pbKeyUsage,
  [in]  DWORD      cbKeyUsage
);

参数

[in] dwCertEncodingType

指定使用的编码类型。 始终可以接受将证书和 消息编码类型 与按位 OR 操作组合在一起,如以下示例所示:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING当前定义的编码类型为:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pCertInfo

指向指定证书 CERT_INFO 结构的指针。

[out] pbKeyUsage

指向用于接收预期密钥用法的缓冲区的指针。 以下列表显示了当前定义的值。 可以使用按位 OR 运算来组合这些操作。

  • CERT_DATA_ENCIPHERMENT_KEY_USAGE
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE
  • CERT_KEY_AGREEMENT_KEY_USAGE
  • CERT_KEY_CERT_SIGN_KEY_USAGE
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE
  • CERT_NON_REPUDIATION_KEY_USAGE
  • CERT_OFFLINE_CRL_SIGN_KEY_USAGE

[in] cbKeyUsage

pbKeyUsage 指向的缓冲区的大小(以字节为单位)。 目前,预期的密钥用法占用 1 或 2 个字节的数据。

返回值

如果证书没有任何预期的密钥使用字节,则返回 FALSE 并将 pbKeyUsage 归零。 否则,返回 TRUE ,并将最多 cbKeyUsage 的字节数复制到 pbKeyUsage 中。 未复制的任何剩余字节将被归零。

如果未找到任何必需的扩展,则 GetLastError 返回零。

如果函数失败, GetLastError 可能会返回 抽象语法表示法 One (ASN.1) 编码/解码错误。 有关这些错误的信息,请参阅 ASN.1 编码/解码返回值

要求

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

另请参阅

数据管理函数