Функция 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, задайте следующие флаги.
Значение | Значение |
---|---|
|
Получите только расширение. |
|
Возвращает только значение расширенного свойства. |
[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, он действителен только для использования, которые находятся в обоих списках.
Если член cUsageIdentifier равен нулю, сертификат может быть действителен для всех вариантов использования или сертификат может не иметь допустимых применений. Возвращаемый вызовом Метода GetLastError можно использовать, чтобы определить, подходит ли сертификат для всех вариантов использования или для нее. Если GetLastError возвращает CRYPT_E_NOT_FOUND, сертификат подходит для всех вариантов использования. Если возвращается ноль, сертификат не имеет допустимого использования.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |