CERT_CHAIN_PARA構造体 (wincrypt.h)
CERT_CHAIN_PARA構造体は、証明書チェーンの構築に使用する検索条件と一致条件を確立します。
構文
typedef struct _CERT_CHAIN_PARA {
DWORD cbSize;
CERT_USAGE_MATCH RequestedUsage;
CERT_USAGE_MATCH RequestedIssuancePolicy;
DWORD dwUrlRetrievalTimeout;
BOOL fCheckRevocationFreshnessTime;
DWORD dwRevocationFreshnessTime;
LPFILETIME pftCacheResync;
PCCERT_STRONG_SIGN_PARA pStrongSignPara;
DWORD dwStrongSignFlags;
} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;
メンバー
cbSize
この構造体のサイズ (バイト単位)。
RequestedUsage
証明書チェーンを構築するために発行者証明書を検索するために必要な一致の種類を示す構造体。 が指す構造体は、照合プロセスで AND ロジックと OR ロジックのどちらを使用するかを示します。 構造体には、照合する OID の配列も含まれます。
RequestedIssuancePolicy
証明書チェーンの構築時に適用される発行ポリシー制約の一致の種類を示す省略可能な構造体。 が指す構造体は、照合プロセスで AND ロジックと OR ロジックのどちらを使用するかを示します。 構造体には、照合する OID の配列も含まれます。
dwUrlRetrievalTimeout
省略可能な時間 (ミリ秒単位)。このメンバーは省略可能です。
fCheckRevocationFreshnessTime
省略可能なメンバー。 このフラグが TRUE の場合、この更新プログラムが現在のシステム時刻から dwRevocationFreshnessTime 値を引いた値以上の場合、新しい CRL の取得が試行されます。 このフラグが設定されていない場合は、CRL の次回の更新時刻が使用されます。
dwRevocationFreshnessTime
現在の時刻 (秒単位) から、チェックされたすべての要素の CRL の更新時刻を差し引いた値。
pftCacheResync
省略可能なメンバー。 NULL 以外の値に設定すると、指定された時刻より前にキャッシュされた情報は無効と見なされ、キャッシュの再同期が実行されます。
Windows Vista: このメンバーのサポートが開始されます。
pStrongSignPara
省略可能。 厳密な署名チェックを有効にするには、 CERT_STRONG_SIGN_PARA 構造体へのポインターを指定します。
Windows 8とWindows Server 2012: このメンバーのサポートが開始されます。
dwStrongSignFlags
チェーンの取得動作を変更する省略可能なフラグ。 0 または次の値を指定できます。
Windows 8とWindows Server 2012: このプロパティのサポートが開始されます。
注釈
厳密な署名を確認する場合は、次の説明が適用されます。
- CertGetCertificateChain または CertSelectCertificateChains 関数を使用する場合は、pStrongSignPara メンバーを厳密な署名用にチェックに設定します。
- チェーンに厳密な署名のない証明書が見つかった場合、CERT_TRUST_STATUS構造の dwErrorStatus フィールドにCERT_TRUST_HAS_WEAK_SIGNATUREエラーとCERT_TRUST_IS_NOT_SIGNATURE_VALIDエラーが設定されます。 CertGetCertificateChain 関数の ppChainContext パラメーターと、CertSelectCertificateChains 関数の pprgpSelection パラメーターは、CERT_CHAIN_CONTEXT構造体を指し、CERT_TRUST_STATUS構造体を指します。
- チェーンが厳密に署名されている場合は、最終的な証明書の公開キーがチェックされ、厳密な署名の最小公開キーの長さの要件を満たしているかどうかを判断します。 条件が満たされない場合、CERT_TRUST_STATUS構造体の dwErrorStatus フィールドにCERT_TRUST_HAS_WEAK_SIGNATUREエラーとCERT_TRUST_IS_NOT_SIGNATURE_VALIDエラーが設定されます。 dwStrongSignFlags メンバーのCERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG値を設定して、このチェックを無効にします。
- pStrongSignPara メンバーが指すCERT_STRONG_SIGN_PARA構造体によって参照されるCERT_STRONG_SIGN_SERIALIZED_INFO構造体にCERT_STRONG_SIGN_ENABLE_CRL_CHECKフラグまたはCERT_STRONG_SIGN_ENABLE_OCSP_CHECK フラグが設定され、CRL または OCSP 応答が厳密な署名なしで見つかった場合、CRL または OCSP 応答はオフラインとして扱われます。 つまり、CERT_TRUST_IS_OFFLINE_REVOCATIONエラーとCERT_TRUST_REVOCATION_STATUS_UNKNOWN エラーは、CERT_TRUST_STATUS構造体の dwErrorStatus フィールドに設定されます。 また、CERT_REVOCATION_INFO構造体の dwRevocationResult メンバーは、NTE_BAD_ALGIDに設定されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | wincrypt.h |