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場合、既定では発行者名の照合のみが行われます。 次のフラグを使用して、追加のフィルター処理を実行できます。
値 | 意味 |
---|---|
|
機関キー識別子 (AKI) 拡張機能を持つ CRL を確認します。 CRL に AKI がある場合は、発行者と一致する AKI を持つ CRL のみが返されます。
メモ AKI 拡張機能には、 オブジェクト識別子 (OID) 値szOID_AUTHORITY_KEY_IDENTIFIER2とそれに対応するデータ構造があります。
|
|
発行者の証明書の公開キーを使用して、CRL の署名を確認します。 有効な署名を持つ CRL のみを返します。 |
|
デルタ CRL を検索して返します。 |
|
ベース CRL を検索して返します。 |
|
検証が成功した後、署名の強度がチェックされます。 このフラグは、 dwFindType パラメーターが CRL_FIND_ISSUED_FOR に設定されている場合にのみ適用されます。 CRL_FIND_ISSUED_BY_SIGNATURE_FLAGも設定する必要があります。 成功した場合は、CRL コンテキストで次の強力な署名プロパティが設定されます。
|
[in] dwFindType
検索の種類を指定します。 dwFindType の値によって、pvFindPara パラメーターのデータ型、内容、および使用が決まります。 現在定義されている検索の種類とその pvFindPara 要件 は次のとおりです。
値 | 意味 |
---|---|
|
検索条件なし。 ストア内の次の CRL が返されます。 |
|
CERT_CONTEXTの発行者と一致するストア内の次の CRL を検索します。 |
|
次の方法で、 CRL_CONTEXT と一致する次の CRL を検索します。
|
|
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 を呼び出します。 考えられるエラー コードの一部を次に示します。
リターン コード | 説明 |
---|---|
|
hCertStore パラメーターのハンドルは、pPrevCrlContext パラメーターが指す CRL コンテキストのハンドルと同じではありません。または、無効な検索の種類が dwFindType パラメーターで指定されています。 |
|
ストアに 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 |