Fungsi CryptQueryObject (wincrypt.h)
Sintaks
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
);
Parameter
[in] dwObjectType
Menunjukkan jenis objek yang akan dikueri. Ini harus menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Objek disimpan dalam struktur dalam memori. |
|
Objek disimpan dalam file. |
[in] pvObject
Penunjuk ke objek yang akan dikueri. Jenis penunjuk data tergantung pada konten parameter dwObjectType .
nilai dwObjectType | Makna |
---|---|
|
Parameter ini adalah penunjuk ke struktur CERT_BLOB, atau serupa, yang berisi objek untuk dikueri. |
|
Parameter ini adalah penunjuk ke string Unicode yang dihentikan null yang berisi jalur dan nama file yang akan dikueri. |
[in] dwExpectedContentTypeFlags
Menunjukkan jenis konten yang diharapkan. Ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Konten dapat berupa jenis apa pun. Ini tidak termasuk bendera CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD .
Jika bendera ini ditentukan, fungsi ini akan mencoba untuk mendapatkan informasi tentang objek, mencoba tipe isi yang berbeda sampai tipe isi yang tepat ditemukan atau tipe isi habis. Ini jelas tidak efisien, jadi bendera ini hanya boleh digunakan jika jenis konten tidak diketahui. |
|
Kontennya adalah satu sertifikat. |
|
Kontennya adalah X509_CERT_PAIR yang dikodekan Abstract Sintaks Notation One (ASN.1) (pasangan sertifikat yang dikodekan yang berisi sertifikat silang maju, mundur, atau maju dan terbalik). |
|
Kontennya adalah satu CRL. |
|
Kontennya adalah CTL tunggal. |
|
Kontennya adalah paket PFX (PKCS #12), tetapi tidak akan dimuat oleh fungsi ini. Anda dapat menggunakan fungsi PFXImportCertStore untuk memuatnya ke penyimpanan. |
|
Kontennya adalah paket PFX (PKCS #12) dan akan dimuat oleh fungsi ini tunduk pada kondisi yang ditentukan dalam catatan berikut.
Catatan
Jika paket PFX berisi kata sandi tersemat yang bukan string kosong atau NULL, dan kata sandi tidak dilindungi ke prinsipal Direktori Aktif (AD) yang menyertakan pengguna panggilan, fungsi ini tidak akan dapat mendekripsi paket PFX. Paket dapat didekripsi, namun, jika kata sandi yang digunakan ketika paket PFX dibuat dienkripsi ke prinsipal AD dan pengguna, sebagai bagian dari prinsipal tersebut, memiliki izin untuk mendekripsi kata sandi. Untuk informasi selengkapnya, lihat parameter pvPara dan bendera PKCS12_PROTECT_TO_DOMAIN_SIDS fungsi PFXExportCertStoreEx . Anda dapat melindungi kata sandi PFX ke perwakilan AD yang dimulai di Windows 8 dan Windows Server 2012. |
|
Kontennya adalah pesan bertanda tangan PKCS #7. |
|
Kontennya adalah pesan yang ditandatangani PKCS #7 yang ditandatangani. |
|
Kontennya adalah pesan PKCS #7 yang tidak ditandatangani. |
|
Kontennya adalah pesan PKCS #10. |
|
Kontennya adalah sertifikat tunggal berseri. |
|
Kontennya adalah CRL tunggal berseri. |
|
Konten ini diserialisasikan CTL tunggal. |
|
Kontennya adalah penyimpanan berseri. |
[in] dwExpectedFormatTypeFlags
Menunjukkan format yang diharapkan dari jenis yang dikembalikan. Ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Konten dapat dikembalikan dalam format apa pun. |
|
Konten harus dikembalikan dalam format berkode heksa ASCII dengan awalan "{ASN}". |
|
Konten harus dikembalikan dalam format yang dikodekan Base64. |
|
Konten harus dikembalikan dalam format biner. |
[in] dwFlags
Parameter ini dicadangkan untuk digunakan di masa mendatang dan harus diatur ke nol.
[out] pdwMsgAndCertEncodingType
Penunjuk ke nilai DWORD yang menerima jenis pengodean yang digunakan dalam pesan. Jika informasi ini tidak diperlukan, atur parameter ini ke NULL.
Parameter ini dapat menerima kombinasi satu atau beberapa nilai berikut.
Nilai | Makna |
---|---|
|
Menentukan pengodean pesan PKCS 7. |
|
Menentukan pengodean sertifikat X.509. |
[out] pdwContentType
Penunjuk ke nilai DWORD yang menerima jenis konten aktual. Jika informasi ini tidak diperlukan, atur parameter ini ke NULL. Tipe konten yang dikembalikan bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Kontennya adalah sertifikat tunggal. |
|
Kontennya adalah X509_CERT_pair yang dikodekan ASN.1. |
|
Kontennya adalah satu CRL. |
|
Kontennya adalah CTL tunggal. |
|
Kontennya adalah paket PFX (PKCS #12). Fungsi ini hanya memverifikasi bahwa objek adalah paket PKCS #12. Paket PKCS #12 tidak dimuat ke dalam penyimpanan sertifikat. |
|
Kontennya adalah paket PFX (PKCS #12), dan telah dimuat ke dalam penyimpanan sertifikat.
Windows Server 2003 dan Windows XP: Nilai ini tidak didukung. |
|
Kontennya adalah pesan bertanda tangan PKCS #7. |
|
Kontennya adalah pesan bertanda tangan PKCS #7 yang disematkan. |
|
Kontennya adalah pesan PKCS #7 yang tidak ditandatangani. |
|
Kontennya adalah pesan PKCS #10. |
|
Kontennya adalah sertifikat tunggal berseri. |
|
Kontennya adalah CRL tunggal berseri. |
|
Kontennya adalah CTL tunggal berseri. |
|
Kontennya adalah penyimpanan berseri. |
[out] pdwFormatType
Penunjuk ke nilai DWORD yang menerima jenis format konten yang sebenarnya. Jika informasi ini tidak diperlukan, atur parameter ini ke NULL. Jenis format yang dikembalikan bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Konten dalam format berkode heksa ASCII dengan awalan "{ASN}". |
|
Konten dalam format yang dikodekan Base64. |
|
Konten dalam format biner. |
[out] phCertStore
Penunjuk ke nilai HCERTSTORE yang menerima handel ke penyimpanan sertifikat yang menyertakan semua sertifikat, CRL, dan CCL dalam objek.
Parameter ini hanya menerima handel penyimpanan sertifikat ketika parameter dwContentType menerima salah satu nilai berikut. Parameter ini menerima NULL untuk semua tipe isi lainnya.
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
Setelah Anda selesai menggunakan handel, bebaskan dengan meneruskan handel ke fungsi CertCloseStore .
Jika informasi ini tidak diperlukan, atur parameter ini ke NULL.
[out] phMsg
Penunjuk ke nilai HCRYPTMSG yang menerima handel pesan yang dibuka.
Parameter ini hanya menerima handel pesan ketika parameter dwContentType menerima salah satu nilai berikut. Parameter ini menerima NULL untuk semua tipe isi lainnya.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Setelah Anda selesai menggunakan handel, bebaskan dengan meneruskan handel ke fungsi CryptMsgClose .
Jika informasi ini tidak diperlukan, atur parameter ini ke NULL.
[out] ppvContext
Penunjuk ke penunjuk yang menerima informasi tambahan tentang objek.
Format data ini tergantung pada nilai yang diterima oleh parameter dwContentType . Tabel berikut mencantumkan format data untuk nilai dwContentType yang ditentukan.
nilai dwContentType | Makna |
---|---|
|
Parameter ini menerima penunjuk ke struktur CERT_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCertificateContext . |
|
Parameter ini menerima penunjuk ke struktur CRL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCRLContext . |
|
Parameter ini menerima penunjuk ke struktur CTL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCTLContext . |
|
Parameter ini menerima penunjuk ke struktur CERT_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCertificateContext . |
|
Parameter ini menerima penunjuk ke struktur CRL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCRLContext . |
|
Parameter ini menerima penunjuk ke struktur CTL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCTLContext . |
Jika informasi ini tidak diperlukan, atur parameter ini ke NULL.
Mengembalikan nilai
Jika fungsi berhasil, fungsi mengembalikan bukan nol.
Jika fungsi gagal, fungsi akan mengembalikan nol. Untuk informasi kesalahan yang diperluas, hubungi GetLastError.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | wincrypt.h |
Pustaka | Crypt32.lib |
DLL | Crypt32.dll |