CERT_TRUST_STATUS-Struktur (wincrypt.h)

Die CERT_TRUST_STATUS-Struktur enthält Vertrauensinformationen zu einem Zertifikat in einer Zertifikatkette, zusammenfassende Vertrauensinformationen zu einer einfachen Kette von Zertifikaten oder Zusammenfassungsinformationen zu einem Array einfacher Ketten.

Syntax

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

Member

dwErrorStatus

dwErrorStatus ist eine Bitmaske der folgenden Fehlercodes, die für Zertifikate und Ketten definiert sind.

Wert Bedeutung
CERT_TRUST_NO_ERROR
0x00000000
Für dieses Zertifikat oder die Kette wurde kein Fehler gefunden.
CERT_TRUST_IS_NOT_TIME_VALID
0x00000001
Dieses Zertifikat oder eines der Zertifikate in der Zertifikatkette ist nicht gültig.
CERT_TRUST_IS_REVOKED
0x00000004
Die Vertrauensstellung für dieses Zertifikat oder eines der Zertifikate in der Zertifikatkette wurde aufgehoben.
CERT_TRUST_IS_NOT_SIGNATURE_VALID
0x00000008
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt nicht über eine gültige Signatur.
CERT_TRUST_IS_NOT_VALID_FOR_USAGE
0x00000010
Das Zertifikat oder die Zertifikatkette ist für die vorgeschlagene Verwendung ungültig.
CERT_TRUST_IS_UNTRUSTED_ROOT
0x00000020
Das Zertifikat oder die Zertifikatkette basiert auf einem nicht vertrauenswürdigen Stamm.
CERT_TRUST_REVOCATION_STATUS_UNKNOWN
0x00000040
Der Sperrstatus des Zertifikats oder eines der Zertifikate in der Zertifizierungskette ist unbekannt.
CERT_TRUST_IS_CYCLIC
0x00000080
Eines der Zertifikate in der Kette wurde von einer Zertifizierungsstelle ausgestellt, die vom ursprünglichen Zertifikat zertifiziert wurde.
CERT_TRUST_INVALID_EXTENSION
0x00000100
Eines der Zertifikate verfügt über eine ungültige Erweiterung.
CERT_TRUST_INVALID_POLICY_CONSTRAINTS
0x00000200
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine Erweiterung für Richtlinieneinschränkungen, und eines der ausgestellten Zertifikate verfügt über eine unzulässige Richtlinienzuordnungserweiterung oder verfügt nicht über eine erforderliche Erweiterung für Ausstellungsrichtlinien.
CERT_TRUST_INVALID_BASIC_CONSTRAINTS
0x00000400
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine Erweiterung für grundlegende Einschränkungen, und entweder kann das Zertifikat nicht zum Ausstellen anderer Zertifikate verwendet werden, oder die Länge des Kettenpfads wurde überschritten.
CERT_TRUST_INVALID_NAME_CONSTRAINTS
0x00000800
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine ungültige Namenseinschränkungserweiterung.
CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
0x00001000
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine Namenseinschränkungserweiterung, die nicht unterstützte Felder enthält. Die minimalen und maximalen Felder werden nicht unterstützt. Daher muss minimum immer 0 (null) und Maximum (Maximum) immer fehlen. Für einen anderen Namen wird nur der UPN unterstützt. Die folgenden alternativen Namensoptionen werden nicht unterstützt:
  • X400-Adresse
  • EDI-Parteiname
  • Registrierte ID
CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
0x00002000
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine Namenseinschränkungserweiterung, und für eine der Namensoptionen im Endzertifikat fehlt eine Namenseinschränkung.
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
0x00004000
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine Namenseinschränkungserweiterung, und es gibt keine zulässige Namenseinschränkung für eine der Namensoptionen im Endzertifikat.
CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
0x00008000
Das Zertifikat oder eines der Zertifikate in der Zertifikatkette verfügt über eine Namenseinschränkungserweiterung, und eine der Namensoptionen im Endzertifikat wird explizit ausgeschlossen.
CERT_TRUST_IS_OFFLINE_REVOCATION
0x01000000
Die Sperrung status des Zertifikats oder eines der Zertifikate in der Zertifikatkette ist entweder offline oder veraltet.
CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
0x02000000
Das Endzertifikat verfügt über keine daraus resultierenden Ausstellungsrichtlinien, und eines der ausstellenden Zertifizierungsstellenzertifikate verfügt über eine Richtlinieneinschränkungserweiterung, die erforderlich ist.
CERT_TRUST_IS_EXPLICIT_DISTRUST
0x04000000
Das Zertifikat ist explizit nicht vertrauenswürdig.

Windows Vista und Windows Server 2008: Die Unterstützung für dieses Flag beginnt.

CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
0x08000000
Das Zertifikat unterstützt keine kritische Erweiterung.

Windows Vista und Windows Server 2008: Die Unterstützung für dieses Flag beginnt.

CERT_TRUST_HAS_WEAK_SIGNATURE
0x00100000
Das Zertifikat wurde nicht stark signiert. In der Regel gibt dies an, dass die MD2- oder MD5-Hashingalgorithmen verwendet wurden, um einen Hash des Zertifikats zu erstellen.

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

 

Die folgenden Codes sind nur für Ketten definiert.

Wert Bedeutung
CERT_TRUST_IS_PARTIAL_CHAIN
0x00010000
Die Zertifikatkette ist nicht vollständig.
CERT_TRUST_CTL_IS_NOT_TIME_VALID
0x00020000
Eine Zum Erstellen dieser Kette verwendete Zertifikatvertrauensliste (Certificate Trust List , CTL) war nicht gültig.
CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID
0x00040000
Eine zum Erstellen dieser Kette verwendete CTL verfügte nicht über eine gültige Signatur.
CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE
0x00080000
Eine zum Erstellen dieser Kette verwendete CTL ist für diese Verwendung ungültig.

dwInfoStatus

Die folgenden Informationen status Codes sind definiert.

Wert Bedeutung
CERT_TRUST_HAS_EXACT_MATCH_ISSUER
0x00000001
Für dieses Zertifikat wurde ein genaues Ausstellerzertifikat gefunden. Dieser status Code gilt nur für Zertifikate.
CERT_TRUST_HAS_KEY_MATCH_ISSUER
0x00000002
Für dieses Zertifikat wurde ein Schlüsselausstellerzertifikat gefunden. Dieser status Code gilt nur für Zertifikate.
CERT_TRUST_HAS_NAME_MATCH_ISSUER
0x00000004
Für dieses Zertifikat wurde ein Name gefunden, der mit dem Ausstellerzertifikat übereinstimmt. Dieser status Code gilt nur für Zertifikate.
CERT_TRUST_IS_SELF_SIGNED
0x00000008
Dieses Zertifikat ist selbstsigniert. Dieser status Code gilt nur für Zertifikate.
CERT_TRUST_HAS_PREFERRED_ISSUER
0x00000100
Das Zertifikat oder die Kette verfügt über einen bevorzugten Aussteller. Dieser status Code gilt für Zertifikate und Ketten.
CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY
0x00000400
Eine Ausstellungskettenrichtlinie ist vorhanden. Dieser status Code gilt für Zertifikate und Ketten.
CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
0x00000400
Eine gültige Namenseinschränkung für alle Namespaces, einschließlich UPN. Dieser status Code gilt für Zertifikate und Ketten.
CERT_TRUST_IS_PEER_TRUSTED
0x00000800
Dieses Zertifikat ist Peer vertrauenswürdig. Dieser status Code gilt nur für Zertifikate.

Windows Vista und Windows Server 2008: Die Unterstützung für dieses Flag beginnt.

CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED
0x00001000
Die Gültigkeit der Zertifikatsperrliste (Certificate Revocation List , CRL) dieses Zertifikats wurde erweitert. Dieser status Code gilt nur für Zertifikate.

Windows Vista und Windows Server 2008: Die Unterstützung für dieses Flag beginnt.

CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE
0x00002000
Das Zertifikat wurde entweder in einem Speicher gefunden, auf den das Element hExclusiveRoot oder hExclusiveTrustedPeople der CERT_CHAIN_ENGINE_CONFIG-Struktur verweist.

Windows 7 und Windows Server 2008 R2: Die Unterstützung für dieses Flag beginnt.

CERT_TRUST_IS_COMPLEX_CHAIN
0x00010000
Die erstellte Zertifikatkette ist eine komplexe Kette. Dieser status Code gilt nur für Ketten.
CERT_TRUST_IS_CA_TRUSTED
0x00004000
Im Speicher, auf den das hExclusiveRoot-Element der CERT_CHAIN_ENGINE_CONFIG-Struktur verweist, wurde ein nicht selbstsigniertes Zwischenzertifizierungsstellenzertifikat gefunden. Das Zertifizierungsstellenzertifikat wird als Vertrauensanker für die Zertifikatkette behandelt. Dieses Flag wird nur festgelegt, wenn der CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG-Wert im dwExclusiveFlags-Element der CERT_CHAIN_ENGINE_CONFIG-Struktur festgelegt ist.

Wenn dieses Flag festgelegt ist, werden die CERT_TRUST_IS_SELF_SIGNED und die CERT_TRUST_IS_PARTIAL_CHAINdwErrorStatus-Flags nicht festgelegt.

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

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_CHAIN_CONTEXT

CERT_CHAIN_ENGINE_CONFIG

CERT_SIMPLE_CHAIN