CertFindCRLInStore 関数 (wincrypt.h)

CertFindCRLInStore 関数は、dwFindType パラメーターと関連する pvFindPara パラメーターによって確立された検索条件に一致する証明書ストア内の最初または次の証明書失効リスト (CRL) コンテキストを検索します。 この関数をループで使用すると、指定した検索条件に一致する証明書ストア内のすべての CRL コンテキストを検索できます。

構文

PCCRL_CONTEXT CertFindCRLInStore(
  [in] HCERTSTORE    hCertStore,
  [in] DWORD         dwCertEncodingType,
  [in] DWORD         dwFindFlags,
  [in] DWORD         dwFindType,
  [in] const void    *pvFindPara,
  [in] PCCRL_CONTEXT pPrevCrlContext
);

パラメーター

[in] hCertStore

検索する証明書ストアのハンドル。

[in] dwCertEncodingType

このパラメーターは現在使用されていません。 0 に設定する必要があります。

[in] dwFindFlags

dwFindType がCRL_FIND_ISSUED_BY場合、既定では発行者名の照合のみが行われます。 次のフラグを使用して、追加のフィルター処理を実行できます。

意味
CRL_FIND_ISSUED_BY_AKI_FLAG
機関キー識別子 (AKI) 拡張機能を持つ CRL を確認します。 CRL に AKI がある場合は、発行者と一致する AKI を持つ CRL のみが返されます。
メモ AKI 拡張機能には、 オブジェクト識別子 (OID) 値szOID_AUTHORITY_KEY_IDENTIFIER2とそれに対応するデータ構造があります。
 
CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
発行者の証明書の公開キーを使用して、CRL の署名を確認します。 有効な署名を持つ CRL のみを返します。
CRL_FIND_ISSUED_BY_DELTA_FLAG
デルタ CRL を検索して返します。
CRL_FIND_ISSUED_BY_BASE_FLAG
ベース CRL を検索して返します。
CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG
検証が成功した後、署名の強度がチェックされます。 このフラグは、 dwFindType パラメーターが CRL_FIND_ISSUED_FOR に設定されている場合にのみ適用されます。 CRL_FIND_ISSUED_BY_SIGNATURE_FLAGも設定する必要があります。 成功した場合は、CRL コンテキストで次の強力な署名プロパティが設定されます。
  • CERT_SIGN_HASH_CNG_ALG_PROP_ID
  • CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Windows 8とWindows Server 2012: このフラグのサポートが開始されます。

[in] dwFindType

検索の種類を指定します。 dwFindType の値によって、pvFindPara パラメーターのデータ型、内容、および使用が決まります。 現在定義されている検索の種類とその pvFindPara 要件 は次のとおりです。

意味
CRL_FIND_ANY
pvFindPara パラメーターは使用されません。 NULL に設定する必要があります。
検索条件なし。 ストア内の次の CRL が返されます。
CRL_FIND_ISSUED_BY
CERT_CONTEXTへのポインター。
CERT_CONTEXTの発行者と一致するストア内の次の CRL を検索します。
CRL_FIND_EXISTING
CRL_CONTEXTへのポインター。
次の方法で、 CRL_CONTEXT と一致する次の CRL を検索します。
  • どちらも基本 CRL またはデルタ CRL です。
  • 両方の発行者名 BLOB は同じです。
  • 存在する場合は、Authority/KeyIdentifier と IssuingDistributionPoint でエンコードされた拡張 BLOB が一致します。
CRL_FIND_ISSUED_FOR
CRL_FIND_ISSUED_FOR_PARAへのポインター。
CRL_FIND_ISSUED_FOR_PARA構造のサブジェクト証明書の発行者と一致するストア内の次の CRL を検索します。

CRL が見つからない場合は、CRL_FIND_ISSUED_FOR_PARA構造の発行者と一致するストア内の次の CRL を検索します。

メモ クロス証明書を使用する場合、発行者の証明書のサブジェクト名がサブジェクト証明書の発行者名とそれに対応する CRL と一致しない可能性があります。
 

[in] pvFindPara

このパラメーターは、 dwFindType の値によって決まります。 詳細については、このトピックの前半の表を参照してください。

[in] pPrevCrlContext

この関数によって返される最後の CRL_CONTEXT へのポインター。 検索条件を満たすストア内の最初の CRL を取得するには 、NULL にする 必要があります。 検索条件を満たす後続の CRL は、 pPrevCrlContext を関数の前回の呼び出しによって返された PCCRL_CONTEXT ポインターに設定することで見つけることができます。 検索プロセスは、検索条件に一致しない CRL、または CertDeleteCRLFromStore によってストアから以前に削除された CRL をスキップします。 この関数は、NULL ではないこのパラメーターの値によって参照される CRL_CONTEXT を解放 します

戻り値

関数が成功した場合、関数は読み取り専用 CRL コンテキストへのポインターを返します。 返された CRL コンテキストの使用が完了したら、CertFreeCRLContext 関数を呼び出して解放するか、CertFindCRLInStore 関数の後続の呼び出しで pPrevCrlContext パラメーターとして渡して暗黙的に解放します。

関数が失敗し、検索条件に一致する CRL が見つからない場合、戻り値は NULL になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
E_INVALIDARG
hCertStore パラメーターのハンドルは、pPrevCrlContext パラメーターが指す CRL コンテキストのハンドルと同じではありません。または、無効な検索の種類が dwFindType パラメーターで指定されています。
CRYPT_E_NOT_FOUND
ストアに CRL が含まれず、検索条件に一致する CRL が見つからなかったか、ストアのリストの末尾に達しました。

注釈

返されたポインターは、関数の後続の呼び出しで pPrevCrlContext パラメーターとして渡されると解放されます。 それ以外の場合は、 CertFreeCRLContext を呼び出してポインターを明示的に解放する必要があります。 NULL ではない pPrevCrlContext は、関数にエラーが発生した場合でも、CertFreeCRLContext の呼び出しを使用して CertFindCRLInStore によって常に解放されます。

CertDuplicateCRLContext を呼び出して、返されたコンテキストの複製を作成できます。 返された CRL コンテキストは、 CertAddCRLContextToStore を使用して別の証明書ストアに追加することも、 CertAddCRLLinkToStore を使用してその CRL コンテキストへのリンクを非コレクション ストアに追加することもできます。

要件

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

こちらもご覧ください

CRL_CONTEXT

CertAddCRLContextToStore

CertAddCRLLinkToStore

CertDeleteCRLFromStore

CertDuplicateCRLContext

CertFreeCRLContext

証明書失効リスト関数