CryptQueryObject 함수(wincrypt.h)
구문
BOOL CryptQueryObject(
[in] DWORD dwObjectType,
[in] const void *pvObject,
[in] DWORD dwExpectedContentTypeFlags,
[in] DWORD dwExpectedFormatTypeFlags,
[in] DWORD dwFlags,
[out] DWORD *pdwMsgAndCertEncodingType,
[out] DWORD *pdwContentType,
[out] DWORD *pdwFormatType,
[out] HCERTSTORE *phCertStore,
[out] HCRYPTMSG *phMsg,
[out] const void **ppvContext
);
매개 변수
[in] dwObjectType
쿼리할 개체의 형식을 나타냅니다. 다음 값 중 하나여야 합니다.
값 | 의미 |
---|---|
|
개체는 메모리의 구조체에 저장됩니다. |
|
개체가 파일에 저장됩니다. |
[in] pvObject
쿼리할 개체에 대한 포인터입니다. 데이터 포인터의 형식은 dwObjectType 매개 변수의 내용에 따라 달라집니다.
dwObjectType 값 | 의미 |
---|---|
|
이 매개 변수는 쿼리할 개체를 포함하는 CERT_BLOB 또는 유사한 구조체에 대한 포인터입니다. |
|
이 매개 변수는 쿼리할 파일의 경로와 이름을 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. |
[in] dwExpectedContentTypeFlags
예상 콘텐츠 형식을 나타냅니다. 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
콘텐츠는 모든 형식일 수 있습니다. 여기에는 CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD 플래그가 포함되지 않습니다.
이 플래그를 지정하면 이 함수는 적절한 콘텐츠 형식을 찾거나 콘텐츠 형식이 소진될 때까지 다른 콘텐츠 형식을 시도하면서 개체에 대한 정보를 가져오려고 시도합니다. 이는 분명히 비효율적이므로 콘텐츠 형식을 알 수 없는 경우에만 이 플래그를 사용해야 합니다. |
|
콘텐츠는 단일 인증서입니다. |
|
콘텐츠는 ASN.1( 추상 구문 표기법 1)으로 인코딩된 X509_CERT_PAIR(정방향, 역방향 또는 정방향 및 역방향 교차 인증서를 포함하는 인코딩된 인증서 쌍)입니다. |
|
콘텐츠는 단일 CRL입니다. |
|
콘텐츠는 단일 CTL입니다. |
|
콘텐츠는 PFX(PKCS #12) 패킷이지만 이 함수에 의해 로드되지 않습니다. PFXImportCertStore 함수를 사용하여 저장소에 로드할 수 있습니다. |
|
콘텐츠는 PFX(PKCS #12) 패킷이며 다음 메모에 지정된 조건에 따라 이 함수에 의해 로드됩니다.
참고
PFX 패킷에 빈 문자열 또는 NULL이 아닌 포함된 암호가 포함되어 있고 호출 사용자를 포함하는 AD(Active Directory) 보안 주체로 암호가 보호되지 않은 경우 이 함수는 PFX 패킷의 암호를 해독할 수 없습니다. 그러나 PFX 패킷을 만들 때 사용된 암호가 AD 보안 주체에 암호화되고 사용자가 해당 보안 주체의 일부로 암호를 해독할 수 있는 권한이 있는 경우 패킷의 암호를 해독할 수 있습니다. 자세한 내용은 pvPara 매개 변수 및 PFXExportCertStoreEx 함수의 PKCS12_PROTECT_TO_DOMAIN_SIDS 플래그를 참조하세요. Windows 8 및 Windows Server 2012 시작하여 AD 보안 주체에 대한 PFX 암호를 보호할 수 있습니다. |
|
콘텐츠는 PKCS #7 서명된 메시지입니다. |
|
콘텐츠는 포함된 PKCS #7 서명된 메시지입니다. |
|
콘텐츠는 PKCS #7 서명되지 않은 메시지입니다. |
|
콘텐츠는 PKCS #10 메시지입니다. |
|
콘텐츠는 직렬화된 단일 인증서입니다. |
|
콘텐츠는 직렬화된 단일 CRL입니다. |
|
콘텐츠가 직렬화된 단일 CTL입니다. |
|
콘텐츠는 직렬화된 저장소입니다. |
[in] dwExpectedFormatTypeFlags
반환된 형식의 예상 형식을 나타냅니다. 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
콘텐츠는 모든 형식으로 반환할 수 있습니다. |
|
콘텐츠는 "{ASN}" 접두사를 사용하여 ASCII 16진수로 인코딩된 형식으로 반환되어야 합니다. |
|
콘텐츠는 Base64로 인코딩된 형식으로 반환되어야 합니다. |
|
콘텐츠는 이진 형식으로 반환되어야 합니다. |
[in] dwFlags
이 매개 변수는 나중에 사용할 수 있도록 예약되어 있으며 0으로 설정해야 합니다.
[out] pdwMsgAndCertEncodingType
메시지에 사용되는 인코딩 유형을 수신하는 DWORD 값에 대한 포인터입니다. 이 정보가 필요하지 않은 경우 이 매개 변수를 NULL로 설정합니다.
이 매개 변수는 다음 값 중 하나 이상의 조합을 받을 수 있습니다.
값 | 의미 |
---|---|
|
PKCS 7 메시지 인코딩을 지정합니다. |
|
X.509 인증서 인코딩을 지정합니다. |
[out] pdwContentType
콘텐츠의 실제 형식을 수신하는 DWORD 값에 대한 포인터입니다. 이 정보가 필요하지 않은 경우 이 매개 변수를 NULL로 설정합니다. 반환된 콘텐츠 형식은 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
콘텐츠는 단일 인증서입니다. |
|
콘텐츠는 ASN.1로 인코딩된 X509_CERT_pair. |
|
콘텐츠는 단일 CRL입니다. |
|
콘텐츠는 단일 CTL입니다. |
|
콘텐츠는 PFX(PKCS #12) 패킷입니다. 이 함수는 개체가 PKCS #12 패킷인지만 확인합니다. PKCS #12 패킷은 인증서 저장소에 로드되지 않습니다. |
|
콘텐츠는 PFX(PKCS #12) 패킷이며 인증서 저장소에 로드되었습니다.
Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
콘텐츠는 PKCS #7 서명된 메시지입니다. |
|
콘텐츠는 포함된 PKCS #7 서명된 메시지입니다. |
|
콘텐츠는 PKCS #7 서명되지 않은 메시지입니다. |
|
콘텐츠는 PKCS #10 메시지입니다. |
|
콘텐츠는 직렬화된 단일 인증서입니다. |
|
콘텐츠는 직렬화된 단일 CRL입니다. |
|
콘텐츠는 직렬화된 단일 CTL입니다. |
|
콘텐츠는 직렬화된 저장소입니다. |
[out] pdwFormatType
콘텐츠의 실제 형식 형식을 수신하는 DWORD 값에 대한 포인터입니다. 이 정보가 필요하지 않은 경우 이 매개 변수를 NULL로 설정합니다. 반환된 형식 형식은 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
콘텐츠는 "{ASN}" 접두사를 사용하여 ASCII 16진수로 인코딩된 형식입니다. |
|
콘텐츠는 Base64로 인코딩된 형식입니다. |
|
콘텐츠는 이진 형식입니다. |
[out] phCertStore
개체의 모든 인증서, CRL 및 CTL을 포함하는 인증서 저장소에 대한 핸들을 수신하는 HCERTSTORE 값에 대한 포인터입니다.
이 매개 변수는 dwContentType 매개 변수가 다음 값 중 하나를 받을 때만 인증서 저장소 핸들을 받습니다. 이 매개 변수는 다른 모든 콘텐츠 형식에 대해 NULL 을 받습니다.
CERT_QUERY_CONTENT_CERT
CERT_QUERY_CONTENT_CRL
CERT_QUERY_CONTENT_CTL
CERT_QUERY_CONTENT_PFX_AND_LOAD
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_SERIALIZED_CERT
CERT_QUERY_CONTENT_SERIALIZED_CRL
CERT_QUERY_CONTENT_SERIALIZED_CTL
CERT_QUERY_CONTENT_SERIALIZED_STORE
핸들 사용을 마치면 핸들을 CertCloseStore 함수에 전달하여 해제합니다.
이 정보가 필요하지 않은 경우 이 매개 변수를 NULL로 설정합니다.
[out] phMsg
열린 메시지의 핸들을 수신하는 HCRYPTMSG 값에 대한 포인터입니다.
이 매개 변수는 dwContentType 매개 변수가 다음 값 중 하나를 받을 때만 메시지 핸들을 받습니다. 이 매개 변수는 다른 모든 콘텐츠 형식에 대해 NULL 을 받습니다.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
핸들 사용을 마쳤으면 핸들을 CryptMsgClose 함수에 전달하여 해제합니다.
이 정보가 필요하지 않은 경우 이 매개 변수를 NULL로 설정합니다.
[out] ppvContext
개체에 대한 추가 정보를 수신하는 포인터에 대한 포인터입니다.
이 데이터의 형식은 dwContentType 매개 변수에서 받은 값에 따라 달라집니다. 다음 표에서는 지정된 dwContentType 값에 대한 데이터 형식을 나열합니다.
dwContentType 값 | 의미 |
---|---|
|
이 매개 변수는 CERT_CONTEXT 구조체에 대한 포인터를 받습니다. 구조체 사용을 마치면 이 포인터를 CertFreeCertificateContext 함수에 전달하여 해제합니다. |
|
이 매개 변수는 CRL_CONTEXT 구조체에 대한 포인터를 받습니다. 구조체 사용을 마치면 이 포인터를 CertFreeCRLContext 함수에 전달하여 해제합니다. |
|
이 매개 변수는 CTL_CONTEXT 구조체에 대한 포인터를 받습니다. 구조체 사용을 마치면 이 포인터를 CertFreeCTLContext 함수에 전달하여 해제합니다. |
|
이 매개 변수는 CERT_CONTEXT 구조체에 대한 포인터를 받습니다. 구조체 사용을 마치면 이 포인터를 CertFreeCertificateContext 함수에 전달하여 해제합니다. |
|
이 매개 변수는 CRL_CONTEXT 구조체에 대한 포인터를 받습니다. 구조체 사용을 마치면 이 포인터를 CertFreeCRLContext 함수에 전달하여 해제합니다. |
|
이 매개 변수는 CTL_CONTEXT 구조체에 대한 포인터를 받습니다. 구조체 사용을 마치면 이 포인터를 CertFreeCTLContext 함수에 전달하여 해제합니다. |
이 정보가 필요하지 않은 경우 이 매개 변수를 NULL로 설정합니다.
반환 값
함수가 성공하면 함수는 0이 아닌 값을 반환합니다.
함수가 실패하면 0을 반환합니다. 확장된 오류 정보는 GetLastError를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |