Partager via


CertGetIntendedKeyUsage

This function acquires the intended key usage bytes from a certificate. The intended key usage can be in either the szOID_KEY_USAGE (2.5.29.15) or szOID_KEY_ATTRIBUTES (2.5.29.2) extension.

BOOL WINAPI CertGetIntendedKeyUsage(
  DWORD dwCertEncodingType,
  PCERT_INFO pCertInfo,
  BYTE* pbKeyUsage,
  DWORD cbKeyUsage
);

Parameters

  • dwCertEncodingType
    [in] Specifies the encoding type used. Currently, only X509_ASN_ENCODING is used; however, additional encoding types may be added in the future.

  • pCertInfo
    [in] Pointer to the CERT_INFO structure of the specified certificate.

  • pbKeyUsage
    [in] Pointer to a buffer containing the intended key usage. The following list shows the currently defined values, which can be combined using bitwise OR operations:

    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

  • cbKeyUsage
    [in] Size, in bytes, of the intended key usage. Currently, the intended key usage occupies only 1 byte of data.

Return Values

If the certificate does not have any intended key usage bytes, FALSE is returned and the pbKeyUsage parameter is set to zero. Otherwise, TRUE is returned and up to the cbKeyUsage number of bytes are copied into the pbKeyUsage parameter. Any remaining bytes not copied are set to zero.

For extended error information, call the GetLastError function.

The GetLastError function can return ERROR_FILE_NOT_FOUND, which indicates an invalid certificate encoding type. Currently only X509_ASN_ENCODING is supported.

Remarks

The desktop platform supports the flag PKCS_7_ASN_ENCODING, but Windows CE does not and ignores the flag when it is specified.

Requirements

OS Versions: Windows CE 3.0 and later.
Header: Wincrypt.h.
Link Library: Crypt32.lib.

See Also

CERT_INFO

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.