次の方法で共有


CERT_CHAIN_POLICY_STATUS構造体 (wincrypt.h)

CERT_CHAIN_POLICY_STATUS構造体には、証明書チェーンの検証時に CertVerifyCertificateChainPolicy 関数によって返される証明書チェーンの状態情報が保持されます。

構文

typedef struct _CERT_CHAIN_POLICY_STATUS {
  DWORD cbSize;
  DWORD dwError;
  LONG  lChainIndex;
  LONG  lElementIndex;
  void  *pvExtraPolicyStatus;
} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;

メンバー

cbSize

この構造体のサイズ (バイト単位)。

dwError

検証プロセス中にエラーまたは無効な条件が検出されたことを示す 値。 このメンバーの値は、CertVerifyCertificateChainPolicy 関数の pszPolicyOID パラメーターの値で指定されたポリシーの種類に固有です。

基本ポリシー エラー (CERT_CHAIN_POLICY_BASE)

説明
TRUST_E_CERT_SIGNATURE
0x80096004L
証明書の署名を検証できません。
CRYPT_E_REVOKED
0x80092010L
証明書または署名が取り消されました。
CERT_E_UNTRUSTEDROOT
0x800B0109L
証明書チェーンは正しく処理されましたが、 信頼プロバイダーによって信頼されていないルート証明書で終了しました。
CERT_E_UNTRUSTEDTESTROOT
0x800B010DL
ルート証明書はテスト証明書であり、ポリシー設定ではテスト証明書が許可されません。
CERT_E_CHAINING
0x800B010AL
証明書のチェーンが正しく作成されませんでした。
CERT_E_WRONG_USAGE
0x800B0110L
証明書が要求された使用法に対して無効である。
CERT_E_EXPIRED
0x800B0101L
必要な証明書が有効期間内にありません。
CERT_E_INVALID_NAME
0x800B0114L
証明書の名前が無効です。 許可されたリストに名前が含まれていないか、明示的に除外されています。
CERT_E_INVALID_POLICY
0x800B0113L
証明書のポリシーが無効です。
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
証明書の基本的な制約が無効であるか、存在しません。
CERT_E_CRITICAL
0x800B0105L
証明書は、CA で指定された目的以外の目的で使用されています。
CERT_E_VALIDITYPERIODNESTING
0x800B0102L
認定チェーンの有効期間が正しく入れ子になりません。
CRYPT_E_NO_REVOCATION_CHECK
0x80092012L
失効関数は、証明書の失効をチェックできませんでした。
CRYPT_E_REVOCATION_OFFLINE
0x80092013L
失効サーバーがオフラインであったため、失効関数が失効を確認できませんでした。
 

基本的な制約ポリシー エラー (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS)。

説明
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
証明書の基本的な制約が無効であるか、存在しません。
 

Authenticode ポリシー エラー (CERT_CHAIN_POLICY_AUTHENTICODECERT_CHAIN_POLICY_AUTHENTICODE_TS)。

これらのエラーは、基本ポリシー エラーに加えて発生します。

説明
CERT_E_PURPOSE
0x800B0106L
証明書は、発行元 CA によって指定された目的以外の目的で使用されています。
CERT_E_REVOKED
0x800B010CL
証明書は、発行者によって明示的に取り消されました。
CERT_E_REVOCATION_FAILURE
0x800B010EL
失効プロセスを続行できず、証明書を確認できませんでした。
 

SSL ポリシー エラー (CERT_CHAIN_POLICY_SSL)。

これらのエラーは、基本ポリシー エラーに加えて発生します。

説明
CERT_E_UNTRUSTEDROOT
0x800B0109L
証明書チェーンは正しく処理されましたが、 信頼プロバイダーによって信頼されていないルート証明書で終了しました。
CERT_E_CN_NO_MATCH
0x800B010FL
証明書の CN 名が、渡された値と一致しません。
CERT_E_PURPOSE
0x800B0106L
証明書は、CA で指定された目的以外の目的で使用されています。
CERT_E_ROLE
0x800B0103L
エンド エンティティとしてのみ使用できる証明書は、CA として、またはその逆として使用されています。
 

Microsoft ルート ポリシー エラー (CERT_CHAIN_POLICY_MICROSOFT_ROOT)。

説明
CERT_E_UNTRUSTEDROOT
0x800B0109L
証明書チェーンは正しく処理されましたが、 信頼プロバイダーによって信頼されていないルート証明書で終了しました。
 

EV ポリシー エラー。

説明
CERT_E_CHAINING
0x800B010AL
信頼されたルート証明機関への証明書チェーンを構築できませんでした。
CERT_E_WRONG_USAGE
0x800B0110L
証明書が要求された使用法に対して無効である。

lChainIndex

無効なエラーまたは条件が見つかったチェーンを示すインデックス。 詳細については、「解説」を参照してください。

lElementIndex

無効なエラーまたは条件が見つかったチェーン内の要素を示すインデックス。 詳細については、「解説」を参照してください。

pvExtraPolicyStatus

構造体へのポインター。 構造体の型は、CertVerifyCertificateChainPolicy 関数の pszPolicyOID パラメーターの値によって決まります。 dwError エラーに加えて、ポリシー OID 固有の追加の状態をここに返して、追加のチェーン状態情報を提供することもできます。 このポインターは、必要に応じて 、AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS 構造体を指すよう設定できます。

解説

lChainIndexlElementIndex の両方が –1 に設定されている場合、無効なエラーまたは条件はチェーン コンテキスト全体に適用されます。 lElementIndex のみが –1 に設定されている場合、無効なエラーまたは条件は、lChainIndex によってインデックス付けされたチェーンに適用されます。 それ以外の場合、無効なエラーまたは条件は、pChainContext-rgpChain[lChainIndex]->>rgpElement[lElementIndex]の証明書要素に適用されます。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header wincrypt.h