Fungsi CryptQueryObject (wincrypt.h)

Penting API ini tidak digunakan lagi. Perangkat lunak baru dan yang sudah ada harus mulai menggunakan Cryptography Next Generation API. Microsoft dapat menghapus API ini dalam rilis mendatang.
 
Fungsi CryptQueryObject mengambil informasi tentang konten objek API kriptografi, seperti sertifikat, daftar pencabutan sertifikat, atau daftar kepercayaan sertifikat. Objek dapat berada dalam struktur dalam memori atau dimuat dalam file.

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
CERT_QUERY_OBJECT_BLOB
Objek disimpan dalam struktur dalam memori.
CERT_QUERY_OBJECT_FILE
Objek disimpan dalam file.

[in] pvObject

Penunjuk ke objek yang akan dikueri. Jenis penunjuk data tergantung pada konten parameter dwObjectType .

nilai dwObjectType Makna
CERT_QUERY_OBJECT_BLOB
Parameter ini adalah penunjuk ke struktur CERT_BLOB, atau serupa, yang berisi objek untuk dikueri.
CERT_QUERY_OBJECT_FILE
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
CERT_QUERY_CONTENT_FLAG_ALL
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.

CERT_QUERY_CONTENT_FLAG_CERT
Kontennya adalah satu sertifikat.
CERT_QUERY_CONTENT_FLAG_CERT_PAIR
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).
CERT_QUERY_CONTENT_FLAG_CRL
Kontennya adalah satu CRL.
CERT_QUERY_CONTENT_FLAG_CTL
Kontennya adalah CTL tunggal.
CERT_QUERY_CONTENT_FLAG_PFX
Kontennya adalah paket PFX (PKCS #12), tetapi tidak akan dimuat oleh fungsi ini. Anda dapat menggunakan fungsi PFXImportCertStore untuk memuatnya ke penyimpanan.
CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD
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.

 
Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.
CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED
Kontennya adalah pesan bertanda tangan PKCS #7.
CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED
Kontennya adalah pesan yang ditandatangani PKCS #7 yang ditandatangani.
CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED
Kontennya adalah pesan PKCS #7 yang tidak ditandatangani.
CERT_QUERY_CONTENT_FLAG_PKCS10
Kontennya adalah pesan PKCS #10.
CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT
Kontennya adalah sertifikat tunggal berseri.
CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL
Kontennya adalah CRL tunggal berseri.
CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL
Konten ini diserialisasikan CTL tunggal.
CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE
Kontennya adalah penyimpanan berseri.

[in] dwExpectedFormatTypeFlags

Menunjukkan format yang diharapkan dari jenis yang dikembalikan. Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
CERT_QUERY_FORMAT_FLAG_ALL
Konten dapat dikembalikan dalam format apa pun.
CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED
Konten harus dikembalikan dalam format berkode heksa ASCII dengan awalan "{ASN}".
CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED
Konten harus dikembalikan dalam format yang dikodekan Base64.
CERT_QUERY_FORMAT_FLAG_BINARY
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
PKCS_7_ASN_ENCODING
65536 (0x10000)
Menentukan pengodean pesan PKCS 7.
X509_ASN_ENCODING
1 (0x1)
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
CERT_QUERY_CONTENT_CERT
Kontennya adalah sertifikat tunggal.
CERT_QUERY_CONTENT_CERT_PAIR
Kontennya adalah X509_CERT_pair yang dikodekan ASN.1.
CERT_QUERY_CONTENT_CRL
Kontennya adalah satu CRL.
CERT_QUERY_CONTENT_CTL
Kontennya adalah CTL tunggal.
CERT_QUERY_CONTENT_PFX
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.
CERT_QUERY_CONTENT_PFX_AND_LOAD
Kontennya adalah paket PFX (PKCS #12), dan telah dimuat ke dalam penyimpanan sertifikat.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

CERT_QUERY_CONTENT_PKCS7_SIGNED
Kontennya adalah pesan bertanda tangan PKCS #7.
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
Kontennya adalah pesan bertanda tangan PKCS #7 yang disematkan.
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Kontennya adalah pesan PKCS #7 yang tidak ditandatangani.
CERT_QUERY_CONTENT_PKCS10
Kontennya adalah pesan PKCS #10.
CERT_QUERY_CONTENT_SERIALIZED_CERT
Kontennya adalah sertifikat tunggal berseri.
CERT_QUERY_CONTENT_SERIALIZED_CRL
Kontennya adalah CRL tunggal berseri.
CERT_QUERY_CONTENT_SERIALIZED_CTL
Kontennya adalah CTL tunggal berseri.
CERT_QUERY_CONTENT_SERIALIZED_STORE
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
CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED
Konten dalam format berkode heksa ASCII dengan awalan "{ASN}".
CERT_QUERY_FORMAT_BASE64_ENCODED
Konten dalam format yang dikodekan Base64.
CERT_QUERY_FORMAT_BINARY
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
CERT_QUERY_CONTENT_CERT
Parameter ini menerima penunjuk ke struktur CERT_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCertificateContext .
CERT_QUERY_CONTENT_CRL
Parameter ini menerima penunjuk ke struktur CRL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCRLContext .
CERT_QUERY_CONTENT_CTL
Parameter ini menerima penunjuk ke struktur CTL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCTLContext .
CERT_QUERY_CONTENT_SERIALIZED_CERT
Parameter ini menerima penunjuk ke struktur CERT_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCertificateContext .
CERT_QUERY_CONTENT_SERIALIZED_CRL
Parameter ini menerima penunjuk ke struktur CRL_CONTEXT . Setelah Anda selesai menggunakan struktur, bebaskan dengan meneruskan pointer ini ke fungsi CertFreeCRLContext .
CERT_QUERY_CONTENT_SERIALIZED_CTL
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

Lihat juga

Fungsi Manajemen Data