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 |