CertGetCTLContextProperty 함수(wincrypt.h)
CertGetCTLContextProperty 함수는 CTL(인증서 신뢰 목록) 컨텍스트의 확장 속성을 검색합니다.
구문
BOOL CertGetCTLContextProperty(
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwPropId,
[out] void *pvData,
[in, out] DWORD *pcbData
);
매개 변수
[in] pCtlContext
CTL_CONTEXT 구조체에 대한 포인터입니다.
[in] dwPropId
검색할 속성을 식별합니다. 현재 정의된 식별자와 pvData 에서 반환할 데이터 형식은 다음 표에 나와 있습니다.
값 | 의미 |
---|---|
|
pvData에 대한 데이터 형식: DWORD에 대한 포인터
인증서에 대한 쓰기 작업이 지속되는지 여부를 나타내는 DWORD 값을 반환합니다. 인증서가 메모리 저장소 또는 읽기 전용으로 열려 있는 레지스트리 기반 저장소에 있는 경우 DWORD 값이 설정되지 않습니다. |
|
pvData에 대한 데이터 형식: NULL
열거형 중에 인증서를 건너뛰었다는 것을 나타냅니다. 이 속성 집합이 있는 인증서는 특정 해시 또는 일련 번호가 있는 인증서를 찾는 데 사용되는 것과 같은 명시적 검색 작업을 통해 찾을 수 있습니다. pvData의 데이터는 이 속성과 연결되지 않습니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 인증서가 자동으로 등록된 인증서 형식의 이름을 지정하는 null로 끝나는 유니코드 문자열을 반환합니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 ASN.1( Abstract Syntax Notation One ) 인코딩된 CTL_USAGE 구조체를 포함하는 바이트 배열을 반환합니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 인증서 UI에 표시되는 속성을 반환합니다. 이 속성을 사용하면 사용자가 인증서의 사용을 설명할 수 있습니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 ASN.1로 인코딩된 CERT_ENHKEY_USAGE 구조체를 포함하는 바이트 배열을 반환합니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 CTL의 표시 이름을 포함하는 null로 끝나는 유니코드 문자열을 반환합니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 SHA1 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다. |
|
pvData에 대한 데이터 형식: CERT_KEY_CONTEXT 대한 포인터
CERT_KEY_CONTEXT 구조를 반환합니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 존재하지 않는 경우 szOID_SUBJECT_KEY_IDENTIFIER 확장을 검색합니다. 실패하면 인증서의 SubjectPublicKeyInfo 멤버에서 SHA1 해시가 수행되어 식별자 값을 생성합니다. |
|
pvData에 대한 데이터 형식: HCRYPTPROV에 대한 포인터
CERT_KEY_CONTEXT_PROP_ID 가져온 공급자 핸들을 반환합니다. |
|
pvData의 데이터 형식: CRYPT_KEY_PROV_INFO 구조체에 대한 포인터 CRYPT_KEY_PROV_INFO 대한 포인터를 반환합니다. |
|
pvData에 대한 데이터 형식: DWORD에 대한 포인터
있는 경우 CERT_KEY_CONTEXT_PROP_ID 속성에서 가져온 프라이빗 키를 지정하는 DWORD 값을 반환합니다. 그렇지 않으면 CERT_KEY_PROV_INFO_PROP_ID 있는 경우 dwKeySpec의 소스입니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 MD5 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 ASN.1로 인코딩된 CERT_ALT_NAME_INFO 구조를 반환합니다. CERT_NEXT_UPDATE_LOCATION_PROP_ID 현재 CTL에서만 사용됩니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 인증서의 공개 키와 연결된 프라이빗 키가 포함된 파일 이름을 지정하는 null로 끝나는 유니코드 와이드 문자열을 반환합니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 SHA1 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다. |
|
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터 서명 해시를 반환합니다. 해시가 없으면 CryptHashToBeSigned로 계산됩니다. 해시의 길이는 SHA의 경우 20바이트, MD5의 경우 16바이트입니다. |
다른 모든 속성 식별자의 경우 pvData는 CertSetCertificateContextProperty의 pvData 매개 변수가 가리키는 CRYPT_DATA_BLOB 아닌 바이트 배열을 가리킵니다.
각 속성 식별자에 대한 자세한 내용은 CertSetCertificateContextProperty의 dwPropId 매개 변수에 대한 설명서를 참조하세요. CERT_SHA1_HASH_PROP_ID 및 CERT_NEXT_UPDATE_LOCATION_PROP_ID 가장 관심 있는 미리 정의된 속성입니다.
[out] pvData
dwPropId에 의해 결정된 데이터를 수신하는 버퍼에 대한 포인터입니다. 반환된 구조체의 멤버가 가리키는 구조체도 기본 구조체 다음에 반환됩니다. 따라서 pcbData 에 포함된 크기가 기본 구조체의 크기를 초과하는 경우가 많습니다.
이 매개 변수는 메모리 할당을 위해 정보의 크기를 설정하는 NULL 일 수 있습니다. 자세한 내용은 알 수 없는 길이의 데이터 검색을 참조하세요.
[in, out] pcbData
pvData 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 DWORD 값에 대한 포인터입니다. 함수가 반환될 때 DWORD 값에는 버퍼에 저장할 바이트 수가 포함됩니다.
반환 값
함수가 성공하면 반환 값은 TRUE입니다.
함수가 실패하면 반환 값은 FALSE입니다.
호출된 함수 CryptHashCertificate의 오류는 이 함수로 전파될 수 있습니다. 확장 오류 정보는 GetLastError를 호출합니다.
몇 가지 가능한 오류 코드는 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
CTL에 지정된 속성이 없습니다. |
|
pvData 매개 변수로 지정된 버퍼가 반환된 데이터를 저장할 만큼 크지 않은 경우 함수는 ERROR_MORE_DATA 코드를 설정하고 필요한 버퍼 크기를 pcbData가 가리키는 변수에 바이트 단위로 저장합니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |