Функция CertGetEnhancedKeyUsage (wincrypt.h)

Функция CertGetEnhancedKeyUsage возвращает сведения из расширения расширенного использования ключа (EKU) или расширенного свойства EKU сертификата. EKU указывают на допустимое использование сертификата.

Синтаксис

BOOL CertGetEnhancedKeyUsage(
  [in]      PCCERT_CONTEXT     pCertContext,
  [in]      DWORD              dwFlags,
  [out]     PCERT_ENHKEY_USAGE pUsage,
  [in, out] DWORD              *pcbUsage
);

Параметры

[in] pCertContext

Указатель на контекст сертификата CERT_CONTEXT .

[in] dwFlags

Указывает, будет ли функция сообщать о расширениях сертификата, его расширенных свойствах или и о том, и другое. Если задано нулевое значение, функция возвращает допустимое использование сертификата на основе расширения EKU и значения расширенного свойства EKU сертификата.

Чтобы вернуть только расширение EKU или значение свойства EKU, задайте следующие флаги.

Значение Значение
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
Получите только расширение.
CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Возвращает только значение расширенного свойства.

[out] pUsage

Указатель на структуру CERT_ENHKEY_USAGE (CERT_ENHKEY_USAGE является альтернативным именем typedef для структуры CTL_USAGE ), получающей допустимое использование сертификата.

Этот параметр может иметь значение NULL , чтобы задать размер использования ключа для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

[in, out] pcbUsage

Указатель на DWORD , указывающий размер (в байтах) структуры, на которую указывает pUsage. При возврате функции DWORD содержит размер структуры (в байтах).

Возвращаемое значение

Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается сбоем, она возвращает ноль (FALSE).

Комментарии

Если сертификат имеет расширение EKU, это расширение перечисляет идентификаторы объектов (OID) для допустимого использования этого сертификата. В среде Майкрософт сертификат также может иметь расширенные свойства EKU, определяющие допустимое использование сертификата.

  • Если сертификат не имеет ни расширения EKU, ни расширенных свойств EKU, предполагается, что он является допустимым для всех вариантов использования.
  • Если у него есть расширение EKU или расширенные свойства EKU, но не оба свойства, они действительны только для использования, указанного в расширении или расширенных свойствах, которые у него есть.
  • Если сертификат имеет как расширение EKU, так и расширенные свойства EKU, он действителен только для использования, которые находятся в обоих списках.
Если параметр dwFlags равен нулю, для элемента cUsageIdentifier структуры CERT_ENHKEY_USAGE устанавливается число допустимых вариантов использования сертификата, определяемое значением расширения EKU и значения расширенного свойства EKU.

Если член cUsageIdentifier равен нулю, сертификат может быть действителен для всех вариантов использования или сертификат может не иметь допустимых применений. Возвращаемый вызовом Метода GetLastError можно использовать, чтобы определить, подходит ли сертификат для всех вариантов использования или для нее. Если GetLastError возвращает CRYPT_E_NOT_FOUND, сертификат подходит для всех вариантов использования. Если возвращается ноль, сертификат не имеет допустимого использования.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CertSetEnhancedKeyUsage

Расширенные функции использования ключей