CertAddEncodedCertificateToStore 함수는 인코딩된 인증서에서 인증서 컨텍스트를 만들어 인증서 저장소에 추가합니다. 만든 컨텍스트에는 확장 속성이 포함되지 않습니다.
또한 CertAddEncodedCertificateToStore 함수는 인증서를 저장소에 추가하기 전에 인코딩된 인증서의 복사본을 만듭니다.
구문
BOOL CertAddEncodedCertificateToStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwCertEncodingType,
[in] const BYTE *pbCertEncoded,
[in] DWORD cbCertEncoded,
[in] DWORD dwAddDisposition,
[out, optional] PCCERT_CONTEXT *ppCertContext
);
매개 변수
[in] hCertStore
인증서 저장소에 대한 핸들입니다.
[in] dwCertEncodingType
사용되는 인코딩 유형을 지정합니다. 다음 예제와 같이 비트 OR 작업과 결합하여 인증서 및 메시지 인코딩 형식을 모두 지정할 수 있습니다.
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING 현재 정의된 인코딩 형식은 다음과 같습니다.
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbCertEncoded
인증서 저장소에 추가할 인코딩된 인증서를 포함하는 버퍼에 대한 포인터입니다.
[in] cbCertEncoded
pbCertEncoded 버퍼의 크기(바이트)입니다.
[in] dwAddDisposition
일치하는 인증서 또는 일치하는 인증서에 대한 링크가 저장소에 있는 경우 수행할 작업을 지정합니다. 현재 정의된 처리 값 및 해당 용도는 다음과 같습니다.
| 값 | 의미 |
|---|---|
|
함수는 일치하는 기존 인증서 또는 일치하는 인증서에 대한 링크에 대한 검사 않습니다. 새 인증서는 항상 저장소에 추가됩니다. 이로 인해 저장소에서 중복이 발생할 수 있습니다. |
|
일치하는 인증서 또는 일치하는 인증서에 대한 링크가 저장소에 있으면 작업이 실패합니다. GetLastError 는 CRYPT_E_EXISTS 코드를 반환합니다. |
|
일치하는 인증서 또는 일치하는 인증서에 대한 링크가 저장소에 있는 경우 기존 인증서 또는 링크가 삭제되고 새 인증서가 만들어지고 저장소에 추가됩니다. 일치하는 인증서 또는 일치하는 인증서에 대한 링크가 없는 경우 새 인증서가 만들어지고 저장소에 추가됩니다. |
|
일치하는 인증서가 저장소에 있는 경우 새 컨텍스트를 만들고 추가하기 전에 기존 컨텍스트가 삭제됩니다. 새 컨텍스트는 기존 인증서에서 속성을 상속합니다. |
|
일치하는 인증서 또는 일치하는 인증서에 대한 링크가 있는 경우 기존 인증서 또는 링크가 사용되고 새 인증서의 속성이 추가됩니다. 함수는 실패하지 않지만 새 컨텍스트를 추가하지는 않습니다.
ppCertContext가 NULL이 아니면 기존 컨텍스트가 중복됩니다.
일치하는 인증서 또는 일치하는 인증서에 대한 링크가 없는 경우 새 인증서가 추가됩니다. |
[out, optional] ppCertContext
디코딩된 인증서 컨텍스트에 대한 포인터에 대한 포인터입니다. 호출 애플리케이션에 새 인증서 또는 기존 인증서의 복사본이 필요하지 않음을 나타내는 NULL일 수 있는 선택적 매개 변수입니다. 복사본이 만들어지면 CertFreeCertificateContext를 사용하여 컨텍스트를 해제해야 합니다.
반환 값
함수가 성공하면 반환 값은 TRUE입니다.
함수가 실패하면 반환 값은 FALSE입니다. 확장 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.
| 반환 코드 | 설명 |
|---|---|
|
이 코드는 CERT_STORE_ADD_NEW 설정되고 인증서가 저장소에 이미 있거나 CERT_STORE_ADD_NEWER 설정되어 있고 추가할 인증서의 NotBefore 날짜보다 크거나 같은 NotBefore 날짜가 있는 인증서가 저장소에 있는 경우 반환됩니다. |
|
유효하지 않은 처리 값이 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 |