CertAddEncodedCRLToStore 함수(wincrypt.h)

CertAddEncodedCRLToStore 함수는 인코딩된 CRL에서 CRL(인증서 해지 목록) 컨텍스트를 만들고 인증서 저장소에 추가합니다. 함수는 저장소에 추가하기 전에 CRL 컨텍스트의 복사본을 만듭니다.

구문

BOOL CertAddEncodedCRLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwCertEncodingType,
  [in]            const BYTE    *pbCrlEncoded,
  [in]            DWORD         cbCrlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppCrlContext
);

매개 변수

[in] hCertStore

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

[in] dwCertEncodingType

사용되는 인코딩 유형을 지정합니다. 다음 예제와 같이 비트 OR 작업과 결합하여 인증서 및 메시지 인코딩 형식을 모두 지정할 수 있습니다.

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING 현재 정의된 인코딩 형식은 다음과 같습니다.

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

인증서 저장소에 추가할 인코딩된 CRL을 포함하는 버퍼에 대한 포인터입니다.

[in] cbCrlEncoded

pbCrlEncoded 버퍼의 크기(바이트)입니다.

[in] dwAddDisposition

일치하는 CRL 또는 일치하는 CRL에 대한 링크가 저장소에 이미 있는 경우 수행할 작업을 지정합니다. 현재 정의된 처리 값 및 해당 용도는 다음과 같습니다.

의미
CERT_STORE_ADD_ALWAYS
일치하는 기존 CRL 또는 일치하는 CRL에 대한 링크에 대한 검사 않습니다. 새 CRL은 항상 저장소에 추가됩니다. 이로 인해 저장소에서 중복이 발생할 수 있습니다.
CERT_STORE_ADD_NEW
일치하는 CRL 또는 일치하는 CRL에 대한 링크가 있는 경우 작업이 실패합니다. GetLastError 는 CRYPT_E_EXISTS 코드를 반환합니다.
CERT_STORE_ADD_NEWER
일치하는 CRL 또는 일치하는 CRL에 대한 링크가 있는 경우 CRL의 ThisUpdate 시간이 비교됩니다. 기존 CRL의 ThisUpdate 시간이 새 CRL의 ThisUpdate 시간보다 작은 경우 이전 CRL 또는 링크가 CERT_STORE_ADD_REPLACE_EXISTING 그대로 바뀝 수 있습니다. 기존 CRL에 추가할 CRL의 ThisUpdate 시간보다 크거나 같은 ThisUpdate 시간이 있는 경우 GetLastError 가 CRYPT_E_EXISTS 코드를 반환하면서 함수가 실패합니다.

일치하는 CRL 또는 일치하는 CRL에 대한 링크가 저장소에 없는 경우 새 CRL이 저장소에 추가됩니다.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
작업은 이전 CRL을 교체하는 경우 이전 CRL의 속성이 대체 CRL에 통합된다는 점을 제외하고 CERT_STORE_ADD_NEWER 경우와 동일합니다.
CERT_STORE_ADD_REPLACE_EXISTING
일치하는 CRL 또는 일치하는 CRL에 대한 링크가 있는 경우 기존 CRL 또는 링크가 삭제되고 새 CRL이 만들어지고 저장소에 추가됩니다. 일치하는 CRL 또는 일치하는 CRL에 대한 링크가 없는 경우 하나가 추가됩니다.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
일치하는 CRL이 저장소에 있는 경우 새 컨텍스트를 만들고 추가하기 전에 기존 컨텍스트가 삭제됩니다. 새 컨텍스트는 기존 CRL에서 속성을 상속합니다.
CERT_STORE_ADD_USE_EXISTING
일치하는 CRL 또는 일치하는 CRL에 대한 링크가 있는 경우 기존 CRL이 사용되고 새 CRL의 속성이 추가됩니다. 함수는 실패하지 않지만 새 CRL은 추가되지 않습니다. ppCertContextNULL이 아니면 기존 컨텍스트가 중복됩니다.

일치하는 CRL 또는 일치하는 CRL에 대한 링크가 없는 경우 새 CRL이 추가됩니다.

[out, optional] ppCrlContext

디코딩된 CRL_CONTEXT 구조체에 대한 포인터에 대한 포인터입니다. 호출 애플리케이션에 새 CRL 또는 기존 CRL의 복사본이 필요하지 않음을 나타내는 NULL일 수 있는 선택적 매개 변수입니다. 복사본이 만들어지면 CertFreeCRLContext를 사용하여 해당 컨텍스트를 해제해야 합니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다. 확장 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.

반환 코드 설명
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW 설정되고 CRL이 저장소에 이미 있거나, CERT_STORE_ADD_NEWER 설정되어 있으며 , CrL을 추가할 ThisUpdate 시간보다 크거나 같은 ThisUpdate 시간이 있는 CRL이 저장소에 있습니다.
E_INVALIDARG
유효하지 않은 처리 값이 dwAddDisposition 매개 변수에 지정되었거나 유효하지 않은 인코딩 형식을 지정했습니다. 현재 X509_ASN_ENCODING 인코딩 형식만 지원됩니다.
 

함수가 실패하면 GetLastError추상 구문 표기법 1(ASN.1) 인코딩/디코딩 오류를 반환할 수 있습니다. 이러한 오류에 대한 자세한 내용은 ASN.1 반환 값 인코딩/디코딩을 참조하세요.

요구 사항

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

추가 정보

CertAddCRLContextToStore

CertFreeCRLContext

인증서 해지 목록 함수