CERT_CHAIN_PARA-Struktur (wincrypt.h)

Die CERT_CHAIN_PARA-Struktur legt die Such- und Abgleichskriterien fest, die beim Erstellen einer Zertifikatkette verwendet werden sollen.

Syntax

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;

Member

cbSize

Die Größe (in Bytes) dieser Struktur.

RequestedUsage

Struktur, die die Art der Übereinstimmung angibt, die erforderlich ist, um Ausstellerzertifikate für das Erstellen einer Zertifikatkette zu finden. Die Struktur, auf die verwiesen wird, gibt an, ob AND- oder OR-Logik im Abgleichsprozess verwendet werden soll. Die Struktur enthält auch ein Array von OIDs, die abgeglichen werden sollen.

RequestedIssuancePolicy

Optionale Struktur, die die Art des Abgleichs von Ausstellungsrichtlinieneinschränkungen angibt, die beim Erstellen einer Zertifikatkette gelten. Die Struktur, auf die verwiesen wird, gibt an, ob AND- oder OR-Logik im Abgleichsprozess verwendet werden soll. Die Struktur enthält auch ein Array von OIDs, die abgeglichen werden sollen.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

dwUrlRetrievalTimeout

Optionale Zeit in Millisekunden, bevor das Zeitlimit für die Sperrüberprüfung aufgehoben wird. Dieses Element ist optional.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

fCheckRevocationFreshnessTime

Optionales Element. Wenn dieses Flag TRUE ist, wird versucht, eine neue Zertifikatsperrliste abzurufen, wenn dieses Update größer oder gleich der aktuellen Systemzeit abzüglich des dwRevocationFreshnessTime-Werts ist. Wenn dieses Flag nicht festgelegt ist, wird die Nächste Aktualisierungszeit der Zertifikatsperrliste verwendet.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

dwRevocationFreshnessTime

Die aktuelle Zeit in Sekunden abzüglich der Aktualisierungszeit der Zertifikatsperrliste aller überprüften Elemente.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

pftCacheResync

Optionales Element. Wenn sie auf einen Wert ohne NULL festgelegt sind, werden Informationen, die vor der angegebenen Zeit zwischengespeichert werden, als ungültig betrachtet, und die Cache-Neusynchronisierung wird ausgeführt.

Windows Vista: Die Unterstützung für dieses Member beginnt.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

pStrongSignPara

Optional. Geben Sie einen Zeiger auf eine CERT_STRONG_SIGN_PARA Struktur an, um eine starke Signaturprüfung zu aktivieren.

Windows 8 und Windows Server 2012: Die Unterstützung für dieses Mitglied beginnt.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

dwStrongSignFlags

Optionale Flags, die das Verhalten des Kettenabrufs ändern. Dies kann null oder der folgende Wert sein.

Wert Bedeutung
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
Wenn die Kette stark signiert ist, wird der öffentliche Schlüssel im Endzertifikat überprüft, um zu überprüfen, ob er die Mindestanforderungen für die Länge eines öffentlichen Schlüssels für eine starke Signatur erfüllt. Sie können CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG angeben, um die Standardüberprüfung zu deaktivieren.
 

Windows 8 und Windows Server 2012: Die Unterstützung für diese Eigenschaft beginnt.

Hinweis Dieser Member kann nur verwendet werden, wenn CERT_CHAIN_PARA_HAS_EXTRA_FIELDS mithilfe der #define-Direktive definiert ist, bevor Wincrypt.h eingeschlossen wird. Wenn dieser Wert definiert ist, muss die Anwendung alle nicht verwendeten Felder auf Null stellen.
 

Hinweise

Die folgenden Hinweise gelten für die Überprüfung auf starke Signaturen.

  • Legen Sie den pStrongSignPara-Member so fest, dass bei Verwendung der Funktion CertGetCertificateChain oder CertSelectCertificateChains nach starken Signaturen gesucht wird.
  • Wenn in der Kette ein Zertifikat ohne starke Signatur gefunden wird, werden die CERT_TRUST_HAS_WEAK_SIGNATURE - und CERT_TRUST_IS_NOT_SIGNATURE_VALID-Fehler im Feld dwErrorStatus der CERT_TRUST_STATUS-Struktur festgelegt. Der ppChainContext-Parameter der CertGetCertificateChain-Funktion und der pprgpSelection-Parameter der CertSelectCertificateChains-Funktion verweisen auf eine CERT_CHAIN_CONTEXT Struktur, die wiederum auf die CERT_TRUST_STATUS-Struktur verweist.
  • Wenn die Kette stark signiert ist, wird der öffentliche Schlüssel im Endzertifikat überprüft, um festzustellen, ob er die Mindestanforderungen an die Länge eines öffentlichen Schlüssels für eine starke Signatur erfüllt. Wenn die Bedingung nicht erfüllt ist, werden die CERT_TRUST_HAS_WEAK_SIGNATURE - und CERT_TRUST_IS_NOT_SIGNATURE_VALID-Fehler im Feld dwErrorStatus der CERT_TRUST_STATUS-Struktur festgelegt. Legen Sie den CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG Wert im dwStrongSignFlags-Member fest, um diese Überprüfung zu deaktivieren.
  • Wenn die CERT_STRONG_SIGN_ENABLE_CRL_CHECK - oder CERT_STRONG_SIGN_ENABLE_OCSP_CHECK-Flags in der CERT_STRONG_SIGN_SERIALIZED_INFO-Struktur festgelegt sind, auf die die CERT_STRONG_SIGN_PARA Struktur verweist, auf die das pStrongSignPara-Element verweist, und eine CRL- oder OCSP-Antwort ohne starke Signatur gefunden wird, wird die CRL- oder OCSP-Antwort als offline behandelt. Das heißt, die CERT_TRUST_IS_OFFLINE_REVOCATION - und CERT_TRUST_REVOCATION_STATUS_UNKNOWN-Fehler werden im Feld dwErrorStatus der CERT_TRUST_STATUS-Struktur festgelegt. Außerdem ist das dwRevocationResult-Element der CERT_REVOCATION_INFO-Struktur auf NTE_BAD_ALGID festgelegt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile wincrypt.h

Weitere Informationen

CERT_USAGE_MATCH