다음을 통해 공유


CERT_CHAIN_POLICY_STATUS 구조체(wincrypt.h)

CERT_CHAIN_POLICY_STATUS 구조는 인증서 체인의 유효성을 검사할 때 CertVerifyCertificateChainPolicy 함수에서 반환하는 인증서 체인 상태 정보를 보유합니다.

구문

typedef struct _CERT_CHAIN_POLICY_STATUS {
  DWORD cbSize;
  DWORD dwError;
  LONG  lChainIndex;
  LONG  lElementIndex;
  void  *pvExtraPolicyStatus;
} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;

멤버

cbSize

이 구조체의 크기(바이트)입니다.

dwError

유효성 검사 프로세스 중에 오류 또는 잘못된 조건이 발생했음을 나타내는 값입니다. 이 멤버의 값은 CertVerifyCertificateChainPolicy 함수의 pszPolicyOID 매개 변수 값으로 지정된 정책 유형과 관련이 있습니다.

기본 정책 오류(CERT_CHAIN_POLICY_BASE)

의미
TRUST_E_CERT_SIGNATURE
0x80096004L
인증서 서명을 확인할 수 없습니다.
CRYPT_E_REVOKED
0x80092010L
인증서 또는 서명이 해지되었습니다.
CERT_E_UNTRUSTEDROOT
0x800B0109L
인증 체인은 올바르게 처리되었지만 트러스트 공급자가 신뢰하지 않는 루트 인증서에서 종료되었습니다.
CERT_E_UNTRUSTEDTESTROOT
0x800B010DL
루트 인증서는 테스트 인증서이며 정책 설정은 테스트 인증서를 허용하지 않습니다.
CERT_E_CHAINING
0x800B010AL
인증서 체인이 올바르게 만들어지지 않았습니다.
CERT_E_WRONG_USAGE
0x800B0110L
인증서가 요청된 사용에 유효하지 않은 경우
CERT_E_EXPIRED
0x800B0101L
필수 인증서가 유효 기간 내에 있지 않습니다.
CERT_E_INVALID_NAME
0x800B0114L
인증서의 이름이 잘못되었습니다. 이름은 허용된 목록에 포함되지 않거나 명시적으로 제외됩니다.
CERT_E_INVALID_POLICY
0x800B0113L
인증서의 정책이 잘못되었습니다.
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
인증서의 기본 제약 조건이 잘못되었거나 누락되었습니다.
CERT_E_CRITICAL
0x800B0105L
인증서는 CA에서 지정한 목적 이외의 용도로 사용됩니다.
CERT_E_VALIDITYPERIODNESTING
0x800B0102L
인증 체인의 유효 기간이 올바르게 중첩되지 않습니다.
CRYPT_E_NO_REVOCATION_CHECK
0x80092012L
해지 함수가 인증서에 대한 해지를 검사 수 없습니다.
CRYPT_E_REVOCATION_OFFLINE
0x80092013L
해지 서버가 오프라인 상태이므로 해지 함수가 해지를 확인할 수 없습니다.
 

기본 제약 조건 정책 오류(CERT_CHAIN_POLICY_BASIC_CONSTRAINTS).

의미
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
인증서의 기본 제약 조건이 잘못되었거나 누락되었습니다.
 

Authenticode 정책 오류(CERT_CHAIN_POLICY_AUTHENTICODECERT_CHAIN_POLICY_AUTHENTICODE_TS).

이러한 오류는 기본 정책 오류에 추가됩니다.

의미
CERT_E_PURPOSE
0x800B0106L
인증서는 발급 CA에서 지정한 이외의 용도로 사용되고 있습니다.
CERT_E_REVOKED
0x800B010CL
인증서가 발급자에서 명시적으로 해지되었습니다.
CERT_E_REVOCATION_FAILURE
0x800B010EL
해지 프로세스를 계속할 수 없으며 인증서를 확인할 수 없습니다.
 

SSL 정책 오류(CERT_CHAIN_POLICY_SSL).

이러한 오류는 기본 정책 오류에 추가됩니다.

의미
CERT_E_UNTRUSTEDROOT
0x800B0109L
인증 체인은 올바르게 처리되었지만 트러스트 공급자가 신뢰하지 않는 루트 인증서에서 종료되었습니다.
CERT_E_CN_NO_MATCH
0x800B010FL
인증서의 CN 이름이 전달된 값과 일치하지 않습니다.
CERT_E_PURPOSE
0x800B0106L
인증서는 CA에서 지정한 목적 이외의 용도로 사용됩니다.
CERT_E_ROLE
0x800B0103L
최종 엔터티로만 사용할 수 있는 인증서가 CA로 사용되거나 그 반대로 사용됩니다.
 

Microsoft 루트 정책 오류(CERT_CHAIN_POLICY_MICROSOFT_ROOT).

의미
CERT_E_UNTRUSTEDROOT
0x800B0109L
인증 체인은 올바르게 처리되었지만 트러스트 공급자가 신뢰하지 않는 루트 인증서에서 종료되었습니다.
 

EV 정책 오류.

의미
CERT_E_CHAINING
0x800B010AL
신뢰할 수 있는 루트 기관에 대한 인증서 체인을 빌드할 수 없습니다.
CERT_E_WRONG_USAGE
0x800B0110L
인증서가 요청된 사용에 유효하지 않은 경우

lChainIndex

유효하지 않은 오류 또는 조건이 발견된 체인을 나타내는 인덱스입니다. 자세한 내용은 설명 부분을 참조하세요.

lElementIndex

잘못된 오류 또는 조건이 발견된 체인의 요소를 나타내는 인덱스입니다. 자세한 내용은 설명 부분을 참조하세요.

pvExtraPolicyStatus

구조체에 대한 포인터입니다. 구조체 형식은 CertVerifyCertificateChainPolicy 함수의 pszPolicyOID 매개 변수 값에 따라 결정됩니다. dwError 오류 외에도 정책 OID 관련 추가 상태 여기에 반환하여 추가 체인 상태 정보를 제공할 수 있습니다. 이 포인터는 선택적으로 AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS 구조를 가리키도록 설정할 수 있습니다.

설명

lChainIndexlElementIndex가 모두 –1로 설정된 경우 유효하지 않은 오류 또는 조건이 전체 체인 컨텍스트에 적용됩니다. lElementIndex만 –1로 설정된 경우 유효하지 않은 오류 또는 조건이 lChainIndex에서 인덱싱된 체인에 적용됩니다. 그렇지 않으면 유효하지 않은 오류 또는 조건이 pChainContext-rgpChain[lChainIndex]->>rgpElement[lElementIndex]의 인증서 요소에 적용됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 wincrypt.h