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
인증서 또는 인증서 체인의 인증서 중 하나에는 지원되지 않는 필드가 포함된 이름 제약 조건 확장이 있습니다. 최소 및 최대 필드는 지원되지 않습니다. 따라서 최솟값은 항상 0이어야 하고 최대값은 항상 없어야 합니다. 다른 이름에는 UPN만 지원됩니다. 다음 대체 이름 선택은 지원되지 않습니다.
  • X400 주소
  • EDI 파티 이름
  • 등록된 ID
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 구조체hExclusiveRoot 또는 hExclusiveTrustedPeople 멤버가 가리키는 저장소에서 발견되었습니다.

Windows 7 및 Windows Server 2008 R2: 이 플래그에 대한 지원이 시작됩니다.

CERT_TRUST_IS_COMPLEX_CHAIN
0x00010000
만든 인증서 체인은 복잡한 체인입니다. 이 상태 코드는 체인에만 적용됩니다.
CERT_TRUST_IS_CA_TRUSTED
0x00004000
자체 서명이 아닌 중간 CA 인증서가 CERT_CHAIN_ENGINE_CONFIG 구조체의 hExclusiveRoot 멤버가 가리키는 저장소에서 발견되었습니다. CA 인증서는 인증서 체인에 대한 신뢰 앵커로 처리됩니다. 이 플래그는 CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG 값이 CERT_CHAIN_ENGINE_CONFIG구조체dwExclusiveFlags 멤버에 설정된 경우에만 설정됩니다.

이 플래그를 설정하면 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