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
鏈結中的其中一個憑證是由原始憑證已通過認證的 證書頒發機構單位 所發行。
CERT_TRUST_INVALID_EXTENSION
0x00000100
其中一個憑證具有無效的擴充功能。
CERT_TRUST_INVALID_POLICY_CONSTRAINTS
0x00000200
憑證鏈結中的憑證或其中一個憑證具有原則條件約束延伸,而其中一個發行的憑證具有不允許的原則對應延伸模組,或沒有必要的發行原則延伸模組。
CERT_TRUST_INVALID_BASIC_CONSTRAINTS
0x00000400
憑證鏈結中的憑證或其中一個憑證具有基本條件約束延伸,而且憑證無法用來發行其他憑證,或已超過鏈結路徑長度。
CERT_TRUST_INVALID_NAME_CONSTRAINTS
0x00000800
憑證鏈結中的憑證或其中一個憑證具有無效的名稱條件約束延伸。
CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
0x00001000
憑證鏈結中的憑證或其中一個憑證具有名稱條件約束延伸模組,其中包含不支援的欄位。 不支援最小和最大欄位。 因此,最小值必須一律為零,最大值必須一律不存在。 其他名稱僅支援UPN。 不支援下列替代名稱選項:
  • X400 位址
  • EDI 合作物件名稱
  • 已註冊的標識碼
CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
0x00002000
憑證鏈結中的憑證或其中一個憑證具有名稱條件約束延伸,且結尾憑證中其中一個名稱選擇缺少名稱條件約束。
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
0x00004000
憑證鏈結中的憑證或其中一個憑證具有名稱條件約束延伸,而且在結束憑證中沒有其中一個名稱選擇的允許名稱條件約束。
CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
0x00008000
憑證鏈結中的憑證或其中一個憑證具有名稱條件約束延伸,且明確排除結束憑證中的其中一個名稱選擇。
CERT_TRUST_IS_OFFLINE_REVOCATION
0x01000000
憑證的撤銷狀態或憑證鏈結中的其中一個憑證已脫機或過時。
CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
0x02000000
結束憑證沒有任何結果的發行原則,而其中一個發行 證書頒發機構單位 憑證具有要求的原則限制式延伸模組。
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結構的hExclusiveRoothExclusiveTrustedPeople 成員所指向的存放區中。

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 [僅限傳統型應用程式]
標頭 wincrypt.h

另請參閱

CERT_CHAIN_CONTEXT

CERT_CHAIN_ENGINE_CONFIG

CERT_SIMPLE_CHAIN