다음을 통해 공유


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 에서 반환할 데이터 형식은 다음 표에 나와 있습니다.

의미
CERT_ACCESS_STATE_PROP_ID
pvData에 대한 데이터 형식: DWORD에 대한 포인터

인증서에 대한 쓰기 작업이 지속되는지 여부를 나타내는 DWORD 값을 반환합니다. 인증서가 메모리 저장소 또는 읽기 전용으로 열려 있는 레지스트리 기반 저장소에 있는 경우 DWORD 값이 설정되지 않습니다.

CERT_ARCHIVED_PROP_ID
pvData에 대한 데이터 형식: NULL

열거형 중에 인증서를 건너뛰었다는 것을 나타냅니다. 이 속성 집합이 있는 인증서는 특정 해시 또는 일련 번호가 있는 인증서를 찾는 데 사용되는 것과 같은 명시적 검색 작업을 통해 찾을 수 있습니다. pvData의 데이터는 이 속성과 연결되지 않습니다.

CERT_AUTO_ENROLL_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

인증서가 자동으로 등록된 인증서 형식의 이름을 지정하는 null로 끝나는 유니코드 문자열을 반환합니다.

CERT_CTL_USAGE_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

ASN.1( Abstract Syntax Notation One ) 인코딩된 CTL_USAGE 구조체를 포함하는 바이트 배열을 반환합니다.

CERT_DESCRIPTION_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

인증서 UI에 표시되는 속성을 반환합니다. 이 속성을 사용하면 사용자가 인증서의 사용을 설명할 수 있습니다.

CERT_ENHKEY_USAGE_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

ASN.1로 인코딩된 CERT_ENHKEY_USAGE 구조체를 포함하는 바이트 배열을 반환합니다.

CERT_FRIENDLY_NAME_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

CTL의 표시 이름을 포함하는 null로 끝나는 유니코드 문자열을 반환합니다.

CERT_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

SHA1 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다.

CERT_KEY_CONTEXT_PROP_ID
pvData에 대한 데이터 형식: CERT_KEY_CONTEXT 대한 포인터

CERT_KEY_CONTEXT 구조를 반환합니다.

CERT_KEY_IDENTIFIER_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

존재하지 않는 경우 szOID_SUBJECT_KEY_IDENTIFIER 확장을 검색합니다. 실패하면 인증서의 SubjectPublicKeyInfo 멤버에서 SHA1 해시가 수행되어 식별자 값을 생성합니다.

CERT_KEY_PROV_HANDLE_PROP_ID
pvData에 대한 데이터 형식: HCRYPTPROV에 대한 포인터

CERT_KEY_CONTEXT_PROP_ID 가져온 공급자 핸들을 반환합니다.

CERT_KEY_PROV_INFO_PROP_ID
pvData의 데이터 형식: CRYPT_KEY_PROV_INFO 구조체에 대한 포인터

CRYPT_KEY_PROV_INFO 대한 포인터를 반환합니다.

CERT_KEY_SPEC_PROP_ID
pvData에 대한 데이터 형식: DWORD에 대한 포인터

있는 경우 CERT_KEY_CONTEXT_PROP_ID 속성에서 가져온 프라이빗 키를 지정하는 DWORD 값을 반환합니다. 그렇지 않으면 CERT_KEY_PROV_INFO_PROP_ID 있는 경우 dwKeySpec의 소스입니다.

CERT_MD5_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

MD5 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

ASN.1로 인코딩된 CERT_ALT_NAME_INFO 구조를 반환합니다.

CERT_NEXT_UPDATE_LOCATION_PROP_ID 현재 CTL에서만 사용됩니다.

CERT_PVK_FILE_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

인증서의 공개 키와 연결된 프라이빗 키가 포함된 파일 이름을 지정하는 null로 끝나는 유니코드 와이드 문자열을 반환합니다.

CERT_SHA1_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

SHA1 해시를 반환합니다. 해시가 없으면 CryptHashCertificate를 사용하여 계산됩니다.

CERT_SIGNATURE_HASH_PROP_ID
pvData에 대한 데이터 형식: BYTE 배열에 대한 포인터

서명 해시를 반환합니다. 해시가 없으면 CryptHashToBeSigned로 계산됩니다. 해시의 길이는 SHA의 경우 20바이트, MD5의 경우 16바이트입니다.

 

다른 모든 속성 식별자의 경우 pvDataCertSetCertificateContextPropertypvData 매개 변수가 가리키는 CRYPT_DATA_BLOB 아닌 바이트 배열을 가리킵니다.

각 속성 식별자에 대한 자세한 내용은 CertSetCertificateContextPropertydwPropId 매개 변수에 대한 설명서를 참조하세요. 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를 호출합니다.

몇 가지 가능한 오류 코드는 다음과 같습니다.

반환 코드 설명
CRYPT_E_NOT_FOUND
CTL에 지정된 속성이 없습니다.
ERROR_MORE_DATA
pvData 매개 변수로 지정된 버퍼가 반환된 데이터를 저장할 만큼 크지 않은 경우 함수는 ERROR_MORE_DATA 코드를 설정하고 필요한 버퍼 크기를 pcbData가 가리키는 변수에 바이트 단위로 저장합니다.

요구 사항

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

추가 정보

CertEnumCTLContextProperties

CertGetCertificateContextProperty

CertSetCTLContextProperty

CryptHashCertificate

확장 속성 함수