CertFindCRLInStore 함수(wincrypt.h)

CertFindCRLInStore 함수는 dwFindType 매개 변수 및 연결된 pvFindPara 매개 변수에 의해 설정된 검색 조건과 일치하는 인증서 저장소에서 첫 번째 또는 다음 CRL(인증서 해지 목록) 컨텍스트를 찾습니다. 이 함수는 루프에서 사용하여 지정된 찾기 조건과 일치하는 인증서 저장소의 모든 CRL 컨텍스트를 찾을 수 있습니다.

구문

PCCRL_CONTEXT CertFindCRLInStore(
  [in] HCERTSTORE    hCertStore,
  [in] DWORD         dwCertEncodingType,
  [in] DWORD         dwFindFlags,
  [in] DWORD         dwFindType,
  [in] const void    *pvFindPara,
  [in] PCCRL_CONTEXT pPrevCrlContext
);

매개 변수

[in] hCertStore

검색할 인증서 저장소의 핸들입니다.

[in] dwCertEncodingType

이 매개 변수는 현재 사용되지 않습니다. 0으로 설정해야 합니다.

[in] dwFindFlags

dwFindType이 CRL_FIND_ISSUED_BY 경우 기본적으로 발급자 이름 일치만 수행됩니다. 다음 플래그를 사용하여 추가 필터링을 수행할 수 있습니다.

의미
CRL_FIND_ISSUED_BY_AKI_FLAG
AKI(기관 키 식별자) 확장이 있는 CRL을 확인합니다. CRL에 AKI가 있는 경우 AKI가 발급자와 일치하는 CRL만 반환됩니다.
참고 AKI 확장에는 szOID_AUTHORITY_KEY_IDENTIFIER2 OID( 개체 식별자 ) 값과 해당 데이터 구조가 있습니다.
 
CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
발급자 인증서의 공개 키를 사용하여 CRL에서 서명을 확인합니다. 유효한 서명이 있는 CRL만 반환합니다.
CRL_FIND_ISSUED_BY_DELTA_FLAG
델타 CRL을 찾아 반환합니다.
CRL_FIND_ISSUED_BY_BASE_FLAG
기본 CRL을 찾아 반환합니다.
CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG
서명은 성공적인 확인 후 강도가 확인됩니다. 이 플래그는 dwFindType 매개 변수가 CRL_FIND_ISSUED_FOR 설정된 경우에만 적용됩니다. 또한 CRL_FIND_ISSUED_BY_SIGNATURE_FLAG 설정해야 합니다. 성공하면 CRL 컨텍스트에서 다음과 같은 강력한 서명 속성이 설정됩니다.
  • CERT_SIGN_HASH_CNG_ALG_PROP_ID
  • CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Windows 8 및 Windows Server 2012: 이 플래그에 대한 지원이 시작됩니다.

[in] dwFindType

만들 검색 유형을 지정합니다. dwFindType 값은 pvFindPara 매개 변수의 데이터 형식, 내용 및 사용을 결정합니다. 현재 정의된 검색 유형 및 해당 pvFindPara 요구 사항은 다음과 같습니다.

의미
CRL_FIND_ANY
pvFindPara 매개 변수는 사용되지 않습니다. NULL로 설정해야 합니다.
검색 조건이 없습니다. 저장소의 다음 CRL이 반환됩니다.
CRL_FIND_ISSUED_BY
CERT_CONTEXT 대한 포인터입니다.
저장소에서 CERT_CONTEXT 발급자와 일치하는 다음 CRL을 검색합니다.
CRL_FIND_EXISTING
CRL_CONTEXT 대한 포인터입니다.
다음과 같은 방법으로 CRL_CONTEXT 일치하는 다음 CRL을 검색합니다.
  • 둘 다 기본 또는 델타 CRL입니다.
  • 둘 다에 대한 발급자 이름 BLOB은 동일합니다.
  • 있는 경우 Authority/KeyIdentifier 및 IssuingDistributionPoint 인코딩된 확장 BLOB이 일치합니다.
CRL_FIND_ISSUED_FOR
CRL_FIND_ISSUED_FOR_PARA 대한 포인터입니다.
저장소에서 CRL_FIND_ISSUED_FOR_PARA 구조의 주체 인증서 발급자와 일치하는 다음 CRL을 검색합니다.

CRL이 없으면 저장소에서 CRL_FIND_ISSUED_FOR_PARA 구조체의 발급자와 일치하는 다음 CRL을 검색합니다.

참고 인증서 간을 사용하는 경우 발급자 인증서의 주체 이름이 주체 인증서의 발급자 이름과 해당 CRL과 일치하지 않을 수 있습니다.
 

[in] pvFindPara

이 매개 변수는 dwFindType 값에 따라 결정됩니다. 자세한 내용은 이 항목의 앞부분에 있는 표를 참조하세요.

[in] pPrevCrlContext

이 함수에서 반환한 마지막 CRL_CONTEXT 대한 포인터입니다. 검색 조건을 충족하는 저장소의 첫 번째 CRL을 얻으려면 NULL 이어야 합니다. 검색 조건을 충족하는 연속 CRL은 pPrevCrlContext 를 함수에 대한 이전 호출에서 반환된 PCCRL_CONTEXT 포인터로 설정하여 찾을 수 있습니다. 검색 프로세스는 검색 조건과 일치하지 않거나 이전에 CertDeleteCRLFromStore에 의해 저장소에서 삭제된 CRL을 건너뜁니다. 이 함수는 NULL이 아닌 이 매개 변수의 값으로 참조되는 CRL_CONTEXT 해제합니다.

반환 값

함수가 성공하면 함수는 읽기 전용 CRL 컨텍스트에 대한 포인터를 반환합니다. 반환된 CRL 컨텍스트 사용을 마치면 CertFreeCRLContext 함수를 호출하여 해제하거나 CertFindCRLInStore 함수에 대한 후속 호출에서 pPrevCrlContext 매개 변수로 전달하여 암시적으로 해제합니다.

함수가 실패하고 검색 조건과 일치하는 CRL을 찾을 수 없는 경우 반환 값은 NULL입니다. 확장된 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.

반환 코드 설명
E_INVALIDARG
hCertStore 매개 변수의 핸들은 pPrevCrlContext 매개 변수가 가리키는 CRL 컨텍스트 또는 유효하지 않은 검색 형식이 dwFindType 매개 변수에 지정된 것과 동일하지 않습니다.
CRYPT_E_NOT_FOUND
저장소에 CRL이 없거나, 검색 조건과 일치하는 CRL이 없거나, 매장 목록의 끝에 도달했습니다.

설명

반환된 포인터는 함수에 대한 후속 호출에서 pPrevCrlContext 매개 변수로 전달될 때 해제됩니다. 그렇지 않으면 CertFreeCRLContext를 호출하여 포인터를 명시적으로 해제해야 합니다. NULL이 아닌 pPrevCrlContext는 함수에 오류가 있더라도 CertFreeCRLContext 호출을 사용하여 CertFindCRLInStore에서 항상 해제됩니다.

CertDuplicateCRLContext 를 호출하여 반환된 컨텍스트를 복제할 수 있습니다. 반환된 CRL 컨텍스트는 CertAddCRLContextToStore를 사용하여 다른 인증서 저장소에 추가하거나 CertAddCRLLinkToStore를 사용하여 해당 CRL 컨텍스트에 대한 링크를 비콜렉션 저장소에 추가할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 wincrypt.h
라이브러리 Crypt32.lib
DLL Crypt32.dll

추가 정보

CRL_CONTEXT

CertAddCRLContextToStore

CertAddCRLLinkToStore

CertDeleteCRLFromStore

CertDuplicateCRLContext

CertFreeCRLContext

인증서 해지 목록 함수