CertCreateContext 함수(wincrypt.h)
CertCreateContext 함수는 인코딩된 바이트에서 지정된 컨텍스트를 만듭니다. 만든 컨텍스트에는 확장 속성이 포함되지 않습니다.
구문
const void * CertCreateContext(
[in] DWORD dwContextType,
[in] DWORD dwEncodingType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[in] DWORD dwFlags,
[in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);
매개 변수
[in] dwContextType
만들 수 있는 컨텍스트를 지정합니다. 예를 들어 인증서컨텍스트를 만들려면 dwContextType 을 CERT_STORE_CERTIFICATE_CONTEXT.
현재 정의된 컨텍스트 형식 플래그는 다음 표에 나와 있습니다.
값 | 의미 |
---|---|
|
인증서 컨텍스트. |
|
CRL 컨텍스트. |
|
CTL 컨텍스트. |
[in] dwEncodingType
사용되는 인코딩 형식을 지정합니다. 현재는 X509_ASN_ENCODING 및 PKCS_7_ASN_ENCODING만 사용되고 있습니다. 그러나 나중에 추가 인코딩 형식이 추가될 수 있습니다. 현재 인코딩 형식의 경우 다음을 사용합니다.
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pbEncoded
복사할 기존 인코딩된 컨텍스트 콘텐츠가 포함된 버퍼에 대한 포인터입니다.
[in] cbEncoded
pbEncoded 버퍼의 크기(바이트)입니다.
[in] dwFlags
다음 플래그 값은 정의되며 비트 OR 연산을 사용하여 결합할 수 있습니다.
값 | 의미 |
---|---|
|
생성된 컨텍스트는 할당된 복사본 대신 pbEncoded 가 가리키는 콘텐츠를 직접 가리킵니다. |
|
함수는 정렬된 항목이 있는 컨텍스트를 만듭니다. 현재 이 플래그는 CTL 컨텍스트에만 적용됩니다.
CTL의 경우 반환된 CTL_INFO 구조체의 cCTLEntry 멤버는 항상 0입니다. CTL 항목을 찾거나 열거하려면 CertFindSubjectInSortedCTL 및 CertEnumSubjectInSortedCTL을 호출해야 합니다. |
|
기본적으로 CTL 컨텍스트가 만들어지면 해당 SignedData 메시지에 대한 HCRYTPMSG 핸들이 만들어집니다. 이 핸들을 만들지 않음으로써 성능을 향상시키기 위해 이 플래그를 설정할 수 있습니다. 이 플래그는 dwContextType 이 CERT_STORE_CTL_CONTEXT 경우에만 사용할 수 있습니다. |
|
기본적으로 CTL 컨텍스트가 만들어지면 해당 항목이 디코딩됩니다. 이 플래그를 설정하면 항목이 디코딩되지 않고 성능이 향상됩니다. 이 플래그는 dwContextType 이 CERT_STORE_CTL_CONTEXT 경우에만 사용할 수 있습니다. |
[in, optional] pCreatePara
CERT_CREATE_CONTEXT_PARA 구조체에 대한 포인터입니다.
pCreatePara와 pfnFree 멤버가 모두 NULL이 아닌 경우 pfnFree 멤버는 pvFree 멤버가 지정한 메모리를 해제하는 데 사용됩니다. pvFree 멤버가 NULL인 경우 pfnFree 멤버를 사용하여 pbEncoded 포인터를 해제합니다.
pCreatePara 또는 pfnFree 멤버가 NULL인 경우 pbEncoded를 해제하려고 시도하지 않습니다.
반환 값
함수가 성공하면 반환 값은 새로 만든 컨텍스트에 대한 포인터입니다. 생성된 컨텍스트를 해제하려면 pCreatePara의 pvFree 멤버를 호출해야 합니다.
함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보는 GetLastError를 호출합니다.
GetLastError가 ERROR_CANCELLED 반환하는 경우 PFN_CERT_CREATE_CONTEXT_SORT_FUNC 콜백 함수가 정렬을 중지하기 위해 FALSE를 반환했음을 의미합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |