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

関数が証明書の拡張機能、その拡張プロパティ、またはその両方についてレポートするかどうかを示します。 0 に設定すると、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、CTL_USAGE 構造体の代替 typedef 名です)。

このパラメーターは、メモリ割り当て目的でキー使用量のサイズを設定するために NULL にすることができます 。 詳細については、「不明な 長さのデータの取得」を参照してください。

[in, out] pcbUsage

pUsage が指す構造体のサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るときに、 DWORD には構造体のサイズ (バイト単位) が含まれます。

戻り値

関数が成功した場合、関数は 0 以外 (TRUE) を返します。

関数が失敗した場合は、0 (FALSE) を返します。

解説

証明書に EKU 拡張機能がある場合、その拡張機能には、その証明書を有効に使用するための オブジェクト識別子 (OID) が一覧表示されます。 Microsoft 環境では、証明書の有効な用途を指定する EKU 拡張プロパティが証明書に含まれている場合もあります。

  • 証明書に EKU 拡張プロパティも EKU 拡張プロパティもない場合は、すべての使用に対して有効であると見なされます。
  • EKU 拡張プロパティまたは EKU 拡張プロパティのいずれかがあり、両方を持たない場合、拡張プロパティまたは拡張プロパティに示されている使用に対してのみ有効です。
  • 証明書に EKU 拡張プロパティと EKU 拡張プロパティの両方がある場合は、両方のリストにある使用に対してのみ有効です。
dwFlags が 0 に設定されている場合、CERT_ENHKEY_USAGE構造体の cUsageIdentifier メンバーは、EKU 拡張機能と EKU 拡張プロパティ値の両方の値によって決定される証明書の有効な使用数に設定されます。

cUsageIdentifier メンバーが 0 の場合、証明書はすべての用途で有効であるか、証明書に有効な使用がない可能性があります。 GetLastError の呼び出しからの戻り値を使用して、証明書がすべての用途に適しているか、または何もしない場合に適しているかどうかを判断できます。 GetLastError が CRYPT_E_NOT_FOUNDを返す場合、証明書はすべての用途に適しています。 0 が返された場合、証明書には有効な使用がありません。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

関連項目

CertSetEnhancedKeyUsage

拡張キー使用法関数