다음을 통해 공유


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 배열도 포함됩니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

dwUrlRetrievalTimeout

해지 확인 시간이 초과되기 전의 선택적 시간(밀리초)입니다. 이 멤버는 선택 사항입니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

fCheckRevocationFreshnessTime

선택적 멤버입니다. 이 플래그가 TRUE이면 이 업데이트가 현재 시스템 시간에서 dwRevocationFreshnessTime 값을 뺀 값보다 크거나 같은 경우 새 CRL을 검색하려고 시도합니다. 이 플래그를 설정하지 않으면 CRL의 다음 업데이트 시간이 사용됩니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

dwRevocationFreshnessTime

현재 시간(초)에서 확인된 모든 요소의 CRL 업데이트 시간을 뺀 값입니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

pftCacheResync

선택적 멤버입니다. NULL이 아닌 값으로 설정하면 지정된 시간 전에 캐시된 정보가 유효하지 않은 것으로 간주되고 캐시 다시 동기화가 수행됩니다.

Windows Vista: 이 멤버에 대한 지원이 시작됩니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

pStrongSignPara

선택 사항입니다. 강력한 서명 검사를 사용하도록 설정하려면 CERT_STRONG_SIGN_PARA 구조체에 대한 포인터를 지정합니다.

Windows 8 및 Windows Server 2012: 이 멤버에 대한 지원이 시작됩니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

dwStrongSignFlags

체인 검색 동작을 수정하는 선택적 플래그입니다. 이 값은 0 또는 다음 값일 수 있습니다.

의미
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
체인이 강력한 서명된 경우 최종 인증서의 공개 키를 확인하여 강력한 서명에 대한 최소 공개 키 길이 요구 사항을 충족하는지 확인합니다. CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG 지정하여 기본 검사를 사용하지 않도록 설정할 수 있습니다.
 

Windows 8 및 Windows Server 2012: 이 속성에 대한 지원이 시작됩니다.

참고 이 멤버는 wincrypt.h를 포함하기 전에 #define 지시문을 사용하여 CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 정의된 경우에만 사용할 수 있습니다. 이 값이 정의되면 애플리케이션은 사용되지 않는 모든 필드를 0으로 설정해야 합니다.
 

설명

강력한 서명을 확인할 때 다음 설명이 적용됩니다.

  • CertGetCertificateChain 또는 CertSelectCertificateChains 함수를 사용할 때 강력한 서명을 위해 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_SIGNATURECERT_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