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 陣列。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

dwUrlRetrievalTimeout

撤銷簽核逾時之前的選擇性時間,以毫秒為單位。這個成員是選擇性的。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

fCheckRevocationFreshnessTime

選擇性成員。 當此旗標為 TRUE 時,如果此更新大於或等於目前的系統時間減去 dwRevocationFreshnessTime 值,就會嘗試擷取新的 CRL。 如果未設定此旗標,則會使用CRL的下一次更新時間。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

dwRevocationFreshnessTime

目前時間,以秒為單位,減去所有已檢查專案的CRL更新時間。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

pftCacheResync

選擇性成員。 當設定為非 NULL 值時,在指定的時間之前快取的資訊會被視為無效,而且會執行快取重新同步處理。

Windows Vista: 開始支援這個成員。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

pStrongSignPara

選擇性。 指定 CERT_STRONG_SIGN_PARA 結構的指標,以啟用強式簽章檢查。

Windows 8 和 Windows Server 2012:開始支援此成員。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

dwStrongSignFlags

修改鏈結擷取行為的選擇性旗標。 這可以是零或下列值。

意義
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
如果鏈結已強式簽署,則會檢查結束憑證中的公鑰,以確認它是否符合強式簽章的最低公鑰長度需求。 您可以指定 CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG 來停用預設檢查。
 

Windows 8 和 Windows Server 2012:開始支援此屬性。

注意 只有在 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 是在包含 Wincrypt.h 之前使用 #define 指示詞來定義時,才能使用此成員。 如果定義這個值,應用程式必須零所有未使用的欄位。
 

備註

下列備註適用於檢查強式簽章時。

  • 使用 CertGetCertificateChainCertSelectCertificateChains 函式時,設定 pStrongSignPara 成員來檢查強式簽章。
  • 如果在鏈結中找到沒有強式簽章的憑證,CERT_TRUST_HAS_WEAK_SIGNATURECERT_TRUST_IS_NOT_SIGNATURE_VALID錯誤會在CERT_TRUST_STATUS結構的 dwErrorStatus 字段中設定。 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_REVOCATIONCERT_TRUST_REVOCATION_STATUS_UNKNOWN錯誤是在 CERT_TRUST_STATUS 結構的 dwErrorStatus 字段中設定。 此外,CERT_REVOCATION_INFO 結構的 dwRevocationResult 成員會設定為 NTE_BAD_ALGID

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 wincrypt.h

另請參閱

CERT_USAGE_MATCH