CertAddCTLContextToStore 함수(wincrypt.h)
CertAddCTLContextToStore 함수는 인증서 저장소에 CTL(인증서 신뢰 목록) 컨텍스트를 추가합니다.
구문
BOOL CertAddCTLContextToStore(
[in] HCERTSTORE hCertStore,
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCTL_CONTEXT *ppStoreContext
);
매개 변수
[in] hCertStore
인증서 저장소의 핸들입니다.
[in] pCtlContext
저장소에 추가할 CTL_CONTEXT 구조체에 대한 포인터입니다.
[in] dwAddDisposition
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 저장소에 이미 있는 경우 수행할 작업을 지정합니다. 현재 정의된 처리 값 및 해당 용도는 다음과 같습니다.
값 | 의미 |
---|---|
|
일치하는 기존 CTL 또는 일치하는 CTL에 대한 링크에 대해 검사 않습니다. 새 CTL은 항상 저장소에 추가됩니다. 이로 인해 저장소에서 중복이 발생할 수 있습니다. |
|
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 있는 경우 작업이 실패합니다. GetLastError 는 CRYPT_E_EXISTS 코드를 반환합니다. |
|
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 있는 경우 CTL의 ThisUpdate 시간이 비교됩니다. 기존 CTL의 ThisUpdate 시간이 새 CTL의 ThisUpdate 시간보다 작은 경우 이전 CTL 또는 링크는 CERT_STORE_ADD_REPLACE_EXISTING 그대로 대체됩니다. 기존 CTL에 추가할 CTL의 ThisUpdate 시간보다 크거나 같은 ThisUpdate 시간이 있는 경우 GetLastError 가 CRYPT_E_EXISTS 코드를 반환하면서 함수가 실패합니다.
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 저장소에 없으면 새 CTL이 저장소에 추가됩니다. |
|
작업은 이전 CTL을 교체하는 경우 이전 CTL의 속성이 대체 CTL에 통합된다는 점을 제외하고 CERT_STORE_ADD_NEWER 경우와 동일합니다. |
|
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 있는 경우 기존 CTL 또는 링크가 삭제되고 새 CTL이 만들어지고 저장소에 추가됩니다. 일치하는 CTL 또는 일치하는 CTL에 대한 링크가 없는 경우 하나가 추가됩니다. |
|
일치하는 CTL이 저장소에 있는 경우 새 컨텍스트를 만들고 추가하기 전에 기존 컨텍스트가 삭제됩니다. 추가된 컨텍스트는 기존 CTL에서 속성을 상속합니다. |
|
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 있는 경우 기존 CTL이 사용되고 새 CTL의 속성이 추가됩니다. 함수는 실패하지 않지만 새 CTL은 추가되지 않습니다. ppCertContext가 NULL이 아니면 기존 컨텍스트가 중복됩니다.
일치하는 CTL 또는 일치하는 CTL에 대한 링크가 없는 경우 새 CTL이 추가됩니다. |
[out, optional] ppStoreContext
디코딩된 CTL 컨텍스트에 대한 포인터에 대한 포인터입니다. 이 선택적 매개 변수는 호출 애플리케이션에 추가되거나 기존 CTL의 복사본이 필요하지 않음을 나타내는 NULL 일 수 있습니다. 복사본이 만들어지면 CertFreeCTLContext를 사용하여 해당 컨텍스트를 해제해야 합니다.
반환 값
함수가 성공하면 반환 값은 TRUE입니다.
함수가 실패하면 반환 값은 FALSE입니다. 호출된 함수 CertAddEncodedCRLToStore 및 CertSetCRLContextProperty 의 오류는 이 함수로 전파될 수 있습니다.
확장 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드는 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
이 오류는 CERT_STORE_ADD_NEW 설정되고 CTL이 저장소에 있거나 CERT_STORE_ADD_NEWER 설정되고 추가될 CTL의 ThisUpdate 날짜보다 크거나 같은 ThisUpdate 날짜가 있는 저장소에 CTL이 있는 경우 반환됩니다. |
|
유효하지 않은 추가 처리는 dwAddDisposition 매개 변수에 의해 지정되었습니다. |
설명
CTL 컨텍스트는 CertDuplicateCTLContext를 사용하여 중복되지 않습니다. 대신 새 복사본이 만들어지고 저장소에 추가됩니다. 인코딩된 CTL 외에도 컨텍스트의 속성이 복사됩니다.
인증서 저장소에서 CTL 컨텍스트를 제거하려면 CertDeleteCTLFromStore 함수를 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |