CERT_TRUST_STATUS構造体 (wincrypt.h)

CERT_TRUST_STATUS構造には、証明書チェーン内の証明書に関する信頼情報、証明書の単純なチェーンに関する信頼情報の概要、または単純なチェーンの配列に関する概要情報が含まれます。

構文

typedef struct _CERT_TRUST_STATUS {
  DWORD dwErrorStatus;
  DWORD dwInfoStatus;
} CERT_TRUST_STATUS, *PCERT_TRUST_STATUS;

メンバー

dwErrorStatus

dwErrorStatus は、証明書とチェーンに対して定義されている次のエラー コードのビットマスクです。

意味
CERT_TRUST_NO_ERROR
0x00000000
この証明書またはチェーンにエラーが見つかりません。
CERT_TRUST_IS_NOT_TIME_VALID
0x00000001
この証明書または証明書チェーン内の証明書のいずれかが無効です。
CERT_TRUST_IS_REVOKED
0x00000004
この証明書または証明書チェーン内のいずれかの証明書の信頼が取り消されました。
CERT_TRUST_IS_NOT_SIGNATURE_VALID
0x00000008
証明書または証明書チェーン内の証明書のいずれかが有効な署名を持っていません。
CERT_TRUST_IS_NOT_VALID_FOR_USAGE
0x00000010
証明書または証明書チェーンは、提案された使用法に対して無効です。
CERT_TRUST_IS_UNTRUSTED_ROOT
0x00000020
証明書または証明書チェーンは、信頼されていないルートに基づいています。
CERT_TRUST_REVOCATION_STATUS_UNKNOWN
0x00000040
証明書、または証明書チェーンのいずれかの証明書の失効ステータスが不明です。
CERT_TRUST_IS_CYCLIC
0x00000080
チェーン内の証明書の 1 つは、元の証明書が認定した 証明機関 によって発行されました。
CERT_TRUST_INVALID_EXTENSION
0x00000100
証明書の 1 つに、無効な拡張機能があります。
CERT_TRUST_INVALID_POLICY_CONSTRAINTS
0x00000200
証明書または証明書チェーン内の証明書の 1 つにポリシー制約拡張機能があり、発行された証明書の 1 つにポリシー マッピング拡張機能が許可されていないか、必要な発行ポリシー拡張機能がありません。
CERT_TRUST_INVALID_BASIC_CONSTRAINTS
0x00000400
証明書または証明書チェーン内の証明書の 1 つに基本的な制約拡張があり、証明書を使用して他の証明書を発行できないか、チェーン パスの長さを超えています。
CERT_TRUST_INVALID_NAME_CONSTRAINTS
0x00000800
証明書または証明書チェーン内の証明書の 1 つに、無効な名前制約拡張機能があります。
CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
0x00001000
証明書または証明書チェーン内の証明書の 1 つに、サポートされていないフィールドを含む名前制約拡張機能があります。 最小フィールドと最大フィールドはサポートされていません。 したがって、最小値は常に 0 で、maximum は常に存在しない必要があります。 その他の名前では UPN のみがサポートされています。 次の代替名の選択はサポートされていません。
  • X400 アドレス
  • EDI パーティ名
  • 登録済み ID
CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
0x00002000
証明書または証明書チェーン内の証明書の 1 つに名前制約拡張があり、最終証明書の名前の選択肢の 1 つに名前制約がありません。
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
0x00004000
証明書または証明書チェーン内の証明書の 1 つに名前制約拡張子があり、エンド証明書の名前の選択肢の 1 つに対して許可された名前制約はありません。
CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
0x00008000
証明書または証明書チェーン内の証明書の 1 つに名前制約拡張があり、最終的な証明書の名前の選択肢の 1 つが明示的に除外されます。
CERT_TRUST_IS_OFFLINE_REVOCATION
0x01000000
証明書の失効状態、または証明書チェーン内の証明書の 1 つがオフラインまたは古くなっています。
CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
0x02000000
最終的な発行ポリシーはエンド証明書に含まれていません。発行元の 証明機関 証明書の 1 つに、それを必要とするポリシー制約拡張機能があります。
CERT_TRUST_IS_EXPLICIT_DISTRUST
0x04000000
証明書は明示的に信頼されていません。

Windows Vista と Windows Server 2008: このフラグのサポートが開始されます。

CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
0x08000000
証明書は重要な拡張機能をサポートしていません。

Windows Vista と Windows Server 2008: このフラグのサポートが開始されます。

CERT_TRUST_HAS_WEAK_SIGNATURE
0x00100000
証明書が厳密に署名されていません。 通常、これは MD2 または MD5 ハッシュ アルゴリズムを使用して証明書のハッシュを作成したことを示します。

Windows 8とWindows Server 2012: このフラグのサポートが開始されます。

 

チェーンに対してのみ、次のコードが定義されています。

意味
CERT_TRUST_IS_PARTIAL_CHAIN
0x00010000
証明書チェーンは完全ではありません。
CERT_TRUST_CTL_IS_NOT_TIME_VALID
0x00020000
このチェーンの作成に使用された 証明書信頼リスト (CTL) が時間が無効でした。
CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID
0x00040000
このチェーンの作成に使用される CTL に有効な署名がありませんでした。
CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE
0x00080000
このチェーンの作成に使用される CTL は、この使用に対して無効です。

dwInfoStatus

次の情報ステータス コードが定義されています。

意味
CERT_TRUST_HAS_EXACT_MATCH_ISSUER
0x00000001
この証明書に対して完全に一致する発行者証明書が見つかりました。 この状態コードは証明書にのみ適用されます。
CERT_TRUST_HAS_KEY_MATCH_ISSUER
0x00000002
この証明書のキー一致発行者証明書が見つかりました。 この状態コードは証明書にのみ適用されます。
CERT_TRUST_HAS_NAME_MATCH_ISSUER
0x00000004
この証明書の名前一致発行者証明書が見つかりました。 この状態コードは証明書にのみ適用されます。
CERT_TRUST_IS_SELF_SIGNED
0x00000008
この証明書は自己署名です。 この状態コードは証明書にのみ適用されます。
CERT_TRUST_HAS_PREFERRED_ISSUER
0x00000100
証明書またはチェーンには、優先する発行者があります。 この状態コードは、証明書とチェーンに適用されます。
CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY
0x00000400
発行チェーン ポリシーが存在します。 この状態コードは、証明書とチェーンに適用されます。
CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
0x00000400
UPN を含むすべての名前空間に対する有効な名前制約。 この状態コードは、証明書とチェーンに適用されます。
CERT_TRUST_IS_PEER_TRUSTED
0x00000800
この証明書はピア信頼です。 この状態コードは証明書にのみ適用されます。

Windows Vista および Windows Server 2008: このフラグのサポートが開始されます。

CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED
0x00001000
この証明書の 証明書失効リスト (CRL) の有効性が拡張されました。 この状態コードは証明書にのみ適用されます。

Windows Vista および Windows Server 2008: このフラグのサポートが開始されます。

CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE
0x00002000
証明書は、CERT_CHAIN_ENGINE_CONFIG構造体の hExclusiveRoot メンバーまたは hExclusiveTrustedPeople メンバーが指すストアで見つかりました。

Windows 7 と Windows Server 2008 R2: このフラグのサポートが開始されます。

CERT_TRUST_IS_COMPLEX_CHAIN
0x00010000
作成される証明書チェーンは複雑なチェーンです。 この状態コードはチェーンにのみ適用されます。
CERT_TRUST_IS_CA_TRUSTED
0x00004000
CERT_CHAIN_ENGINE_CONFIG構造体のhExclusiveRoot メンバーが指すストアで、自己署名されていない中間 CA 証明書が見つかりました。 CA 証明書は、証明書チェーンのトラスト アンカーとして扱われます。 このフラグは、 CERT_CHAIN_ENGINE_CONFIG 構造体の dwExclusiveFlags メンバーに CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG 値が設定されている場合にのみ設定されます。

このフラグが設定されている場合、 CERT_TRUST_IS_SELF_SIGNEDCERT_TRUST_IS_PARTIAL_CHAINdwErrorStatus フラグは設定されません。

Windows 8とWindows Server 2012: このフラグのサポートが開始されます。

要件

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

こちらもご覧ください

CERT_CHAIN_CONTEXT

CERT_CHAIN_ENGINE_CONFIG

CERT_SIMPLE_CHAIN