CertFindChainInStore 関数 (wincrypt.h)
CertFindChainInStore 関数は、指定された条件を満たす ストア 内の最初または次の証明書を検索します。 その後、その証明書の証明書チェーン コンテキストをビルドして検証します。
構文
PCCERT_CHAIN_CONTEXT CertFindChainInStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwCertEncodingType,
[in] DWORD dwFindFlags,
[in] DWORD dwFindType,
[in] const void *pvFindPara,
[in] PCCERT_CHAIN_CONTEXT pPrevChainContext
);
パラメーター
[in] hCertStore
チェーンが構築される証明書を検索するストアのハンドル。 このハンドルは、チェーンの構築時に CertGetCertificateChain 関数に追加ストアとして渡されます。
[in] dwCertEncodingType
ストアのエンコードに使用された 証明書エンコードの種類。 この値の高い WORD に含まれる メッセージ エンコードの種類 識別子は、この関数では無視されます。
このパラメーターには、現在定義されている次の証明書エンコードの種類を指定できます。
価値 | 意味 |
---|---|
|
X.509 証明書エンコードを指定します。 |
[in] dwFindFlags
検索の追加オプションが含まれています。 このパラメーターに指定できる値は、dwFindType パラメーターの値によって異なります。
dwFindType に CERT_CHAIN_FIND_BY_ISSUERが含まれている場合、このパラメーターには 0 個または 1 つ以上の次の値の組み合わせを含めることができます。
価値 | 意味 |
---|---|
|
証明書の公開キーを、暗号化サービス プロバイダーの公開キーと比較します。 この比較は、チェーンの作成時に最後に行われたチェックです。
発行者の hCryptProv メンバーには秘密キーが含まれているため、このプロセス中に複数回確認する必要がある場合があります。このチェックを容易にするために、dwAcquirePrivateKeyFlags メンバーを CERT_CHAIN_FIND_BY_ISSUER_PARA 構造体に設定して、その hCryptProvのキャッシュを有効にすることができます。 |
|
既定では、最初の単純チェーンのみが発行者名の一致をチェックします。 このフラグを設定すると、既定値がオーバーライドされ、以降の単純なチェーンで発行者名の一致もチェックされます。 |
|
キャッシュされたシステム ストア (Root、My、Ca、Trust) のみを検索して発行者証明書を検索することで、この関数のパフォーマンスを向上させます。 このフラグが設定されていない場合、関数はキャッシュされたシステム ストアと、hCertStore パラメーターで表されるストアを検索します。 |
|
URL キャッシュのみが検索されます。 インターネットは検索されません。 |
|
ローカル コンピューター証明書ストアのみを開きます。 現在のユーザーの証明書ストアは開かっていません。 |
|
証明書に秘密キーが関連付けられているかどうかを判断するためのチェックは行われません。 |
[in] dwFindType
ストア内の証明書を検索するために使用する条件を決定します。
このパラメーターには、現在定義されている次の値を指定できます。
CERT_CHAIN_FIND_BY_ISSUER
発行者の名前に基づいて証明書を検索します。 pvFindPara パラメーターは、検索を変更するメンバーを含む CERT_CHAIN_FIND_BY_ISSUER_PARA 構造体へのポインターです。
証明書チェーンは、使用可能な 秘密キーを持つ証明書用に構築されています。 既定では、発行者名の一致では、最初の単純なチェーン内の発行者のみが比較されます。 このフラグが設定されている場合、すべてのチェーンで、一連の発行者名のいずれかに一致する発行者証明書がチェックされます。
この関数は、
この関数は失効チェックを実行しません。
pPrevChainContext
[in] pvFindPara
追加の検索条件を含むポインター。 このパラメーターが指すデータの型と形式は、dwFindType パラメーターの値によって異なります。
[in] pPrevChainContext
この関数の前の呼び出しから返された CERT_CHAIN_CONTEXT 構造体へのポインター。 この証明書から検索が開始されます。 この関数の最初の呼び出しでは、このパラメーターは NULL
戻り値
最初または次のチェーン コンテキストがビルドされていない場合は、NULL が返されます。 それ以外の場合は、読み取り専用の CERT_CHAIN_CONTEXT 構造体へのポインターが返されます。 CERT_CHAIN_CONTEXT 構造体は、この関数の後続の呼び出しで pPrevChainContext パラメーターとして渡されると解放されます。 それ以外の場合は、CertFreeCertificateChain 関数を呼び出して、CERT_CHAIN_CONTEXT 構造体を明示的に解放する必要があります。
備考
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wincrypt.h |
ライブラリ | Crypt32.lib |
DLL | Crypt32.dll |