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 の配列も含まれます。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

dwUrlRetrievalTimeout

省略可能な時間 (ミリ秒単位)。このメンバーは省略可能です。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

fCheckRevocationFreshnessTime

省略可能なメンバー。 このフラグが TRUE の場合、この更新プログラムが現在のシステム時刻から dwRevocationFreshnessTime 値を引いた値以上の場合、新しい CRL の取得が試行されます。 このフラグが設定されていない場合は、CRL の次回の更新時刻が使用されます。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

dwRevocationFreshnessTime

現在の時刻 (秒単位) から、チェックされたすべての要素の CRL の更新時刻を差し引いた値。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

pftCacheResync

省略可能なメンバー。 NULL 以外の値に設定すると、指定された時刻より前にキャッシュされた情報は無効と見なされ、キャッシュの再同期が実行されます。

Windows Vista: このメンバーのサポートが開始されます。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

pStrongSignPara

省略可能。 厳密な署名チェックを有効にするには、 CERT_STRONG_SIGN_PARA 構造体へのポインターを指定します。

Windows 8とWindows Server 2012: このメンバーのサポートが開始されます。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

dwStrongSignFlags

チェーンの取得動作を変更する省略可能なフラグ。 0 または次の値を指定できます。

意味
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
チェーンが厳密に署名されている場合は、最終的な証明書の公開キーがチェックされ、強力な署名の最小公開キーの長さの要件を満たしているかどうかを確認します。 既定のチェックを無効にする CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG を指定できます。
 

Windows 8とWindows Server 2012: このプロパティのサポートが開始されます。

メモ このメンバーは、Wincrypt.h を含む前 に #define ディレクティブを使用して CERT_CHAIN_PARA_HAS_EXTRA_FIELDS が定義されている場合にのみ使用できます。 この値が定義されている場合、アプリケーションは未使用のフィールドをすべてゼロにする必要があります。
 

注釈

厳密な署名を確認する場合は、次の説明が適用されます。

  • 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

こちらもご覧ください

CERT_USAGE_MATCH