Bagikan melalui


struktur CERT_STORE_PROV_FIND_INFO (wincrypt.h)

Struktur CERT_STORE_PROV_FIND_INFO digunakan oleh banyak fungsi panggilan balik penyedia penyimpanan. Ini berisi kriteria pencarian untuk menemukan sertifikat, daftar pencabutan sertifikat (CRL), atau daftar kepercayaan sertifikat (CTL) di penyimpanan sertifikat.

Sintaks

typedef struct _CERT_STORE_PROV_FIND_INFO {
  DWORD      cbSize;
  DWORD      dwMsgAndCertEncodingType;
  DWORD      dwFindFlags;
  DWORD      dwFindType;
  const void *pvFindPara;
} CERT_STORE_PROV_FIND_INFO, *PCERT_STORE_PROV_FIND_INFO;

Anggota

cbSize

Ukuran struktur.

dwMsgAndCertEncodingType

Menentukan jenis pengodean yang digunakan untuk pesan dan sertifikat. Jenis pengodean sertifikat dan pesan dapat dikombinasikan dengan operasi bitwise-OR. Berikut adalah jenis pengodean yang ditentukan:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

dwFindFlags

Digunakan dengan beberapa nilai dwFindType untuk mengubah kriteria pencarian. Untuk sebagian besar nilai dwFindType , dwFindFlags tidak digunakan dan harus diatur ke nol.

dwFindType

Menentukan tipe pencarian yang sedang dilakukan. Jenis pencarian menentukan jenis data, konten, dan penggunaan pvFindPara. Nilai dwFindType yang ditentukan saat ini dan jenis data yang masing-masing diperlukan untuk pvFindPara adalah sebagai berikut.

Nilai Makna
CERT_FIND_ANY
NULL; pvFindPara tidak digunakan
Tidak ada kriteria pencarian yang digunakan. Mengembalikan sertifikat berikutnya di penyimpanan.
CERT_FIND_CERT_ID
struktur CERT_ID
Menemukan sertifikat yang diidentifikasi oleh CERT_ID yang ditentukan.
CERT_FIND_CTL_USAGE
struktur CTL_USAGE
Mencari sertifikat yang memiliki ekstensi szOID_ENHANCED_KEY_USAGE atau CERT_CTL_PROP_ID yang cocok dengan anggota pszUsageIdentifier dari struktur CTL_USAGE .
CERT_FIND_ENHKEY_USAGE
struktur CERT_ENHKEY_USAGE
Mencari sertifikat di penyimpanan yang memiliki ekstensi penggunaan kunci yang ditingkatkan atau properti penggunaan kunci yang ditingkatkan dan pengidentifikasi penggunaan yang cocok dengan anggota pszUsageIdentifier dalam struktur CERT_ENHKEY_USAGE .

Sertifikat memiliki ekstensi penggunaan kunci yang disempurnakan jika memiliki struktur CERT_EXTENSION dengan anggota pszObjId diatur ke szOID_ENHANCED_KEY_USAGE. Sertifikat memiliki properti penggunaan kunci yang ditingkatkan jika pengidentifikasi CERT_ENHKEY_USAGE_PROP_ID diatur.

Jika pvFindPara adalah NULL atau anggota cUsageIdentifierCERT_ENHKEY_USAGE adalah nol, sertifikat apa pun yang memiliki ekstensi penggunaan kunci yang ditingkatkan atau properti penggunaan kunci yang ditingkatkan memenuhi kriteria pilihan.

Jika pvFindPara adalah NULL atau anggota cUsageIdentifier dari struktur CERT_ENHKEY_USAGE adalah nol, sertifikat apa pun yang memiliki penggunaan kunci yang ditingkatkan adalah kecocokan.

Jika CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG diatur dalam dwFindFlags, sertifikat tanpa ekstensi penggunaan kunci atau properti juga cocok. Mengatur bendera ini lebih diutamakan daripada melewati NULL di pvFindPara.

Jika CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG diatur, kecocokan hanya dilakukan pada ekstensi penggunaan kunci.

Untuk informasi tentang modifikasi bendera pada kriteria pencarian, lihat Keterangan.

CERT_FIND_EXISTING
struktur CERT_CONTEXT
Mencari sertifikat yang sama persis dengan konteks sertifikat yang ditentukan.
CERT_FIND_HASH
struktur CRYPT_HASH_BLOB
Mencari sertifikat dengan hash SHA1 yang cocok dengan hash dalam struktur CRYPT_HASH_BLOB .
CERT_FIND_ISSUER_ATTR
struktur CERT_RDN
Cari sertifikat dengan atribut pengeluar sertifikat tertentu yang cocok dengan atribut dalam struktur CERT_RDN . Jika nilai-nilai ini diatur, fungsi membandingkan atribut penerbit dalam sertifikat dengan elemen array CERT_RDN_ATTR dalam struktur CERT_RDN ini. Perbandingan iterasi melalui atribut CERT_RDN_ATTR mencari kecocokan dengan atribut penerbit sertifikat.

Jika anggota pszObjIddari CERT_RDN_ATTR adalah NULL, pengidentifikasi objek atribut diabaikan.

Jika anggota dwValueTypedari CERT_RDN_ATTR CERT_RDN_ANY_TYPE, jenis nilai diabaikan.

Jika anggota pbDatadari CERT_RDN_VALUE_BLOB adalah NULL, nilai apa pun cocok.

Saat ini, hanya kecocokan yang tepat dan peka huruf besar/kecil yang didukung. Untuk informasi tentang opsi Unicode, lihat Keterangan. Ketika nilai-nilai ini diatur, pencarian dibatasi untuk sertifikat yang jenis pengodeannya cocok dengan dwMsgAndCertEncodingType.

CERT_FIND_ISSUER_NAME
struktur CERT_NAME_BLOB
Cari sertifikat dengan kecocokan yang tepat dari seluruh nama pengeluar sertifikat dengan nama di CERT_NAME_BLOB. Pencarian dibatasi untuk sertifikat yang cocok dengan dwMsgAndCertEncodingType.
CERT_FIND_ISSUER_OF
struktur CERT_CONTEXT
Mencari sertifikat dengan pengeluar sertifikat yang cocok dengan penerbit di CERT_CONTEXT.

Alih-alih menggunakan fungsi CertFindCertificateInStore dengan nilai ini, gunakan fungsi CertGetCertificateChain .

CERT_FIND_ISSUER_STR
Untai (karakter) lebar null-terminated (Unicode)
Cari sertifikat yang berisi string nama pengeluar sertifikat yang ditentukan. Anggota pengeluar sertifikat dikonversi ke string nama dengan jenis yang sesuai menggunakan bentuk CertNameToStr yang sesuai yang diformat sebagai CERT_SIMPLE_NAME_STR. Kemudian pencocokan substring-within-a-string yang tidak sensitif huruf besar/kecil dilakukan. Ketika nilai ini diatur, pencarian dibatasi untuk sertifikat yang jenis pengodeannya cocok dengan dwMsgAndCertEncodingType.
CERT_FIND_KEY_IDENTIFIER
struktur CRYPT_HASH_BLOB
Mencari sertifikat dengan properti CERT_KEY_IDENTIFIER_PROP_ID yang cocok dengan pengidentifikasi kunci di CRYPT_HASH_BLOB.
CERT_FIND_KEY_SPEC
DWORD yang berisi spesifikasi kunci
Mencari sertifikat yang memiliki properti CERT_KEY_SPEC_PROP_ID yang cocok dengan spesifikasi kunci di pvFindPara.
CERT_FIND_MD5_HASH
struktur CRYPT_HASH_BLOB
Mencari sertifikat dengan hash MD5 yang cocok dengan hash di CRYPT_HASH_BLOB.
CERT_FIND_PROPERTY
DWORD yang berisi pengidentifikasi properti
Mencari sertifikat dengan properti yang cocok dengan pengidentifikasi properti yang ditentukan oleh DWORD di pvFindPara.
CERT_FIND_PUBLIC_KEY
struktur CERT_PUBLIC_KEY_INFO
Mencari sertifikat dengan kunci umum yang cocok dengan kunci umum dalam struktur CERT_PUBLIC_KEY_INFO .
CERT_FIND_SHA1_HASH
struktur CRYPT_HASH_BLOB
Mencari sertifikat dengan hash SHA1 yang cocok dengan hash dalam struktur CRYPT_HASH_BLOB .
CERT_FIND_SIGNATURE_HASH
struktur CRYPT_HASH_BLOB
Mencari sertifikat dengan hash tanda tangan yang cocok dengan hash tanda tangan dalam struktur CRYPT_HASH_BLOB .
CERT_FIND_SUBJECT_ATTR
struktur CERT_RDN
Mencari sertifikat dengan atribut subjek tertentu yang cocok dengan atribut dalam struktur CERT_RDN . Jika nilai RDN diatur, fungsi membandingkan atribut subjek dalam sertifikat dengan elemen array CERT_RDN_ATTR dalam struktur CERT_RDN ini. Perbandingan iterasi melalui atribut CERT_RDN_ATTR mencari kecocokan dengan atribut subjek sertifikat.

Jika anggota pszObjIddari CERT_RDN_ATTR adalah NULL, pengidentifikasi objek atribut diabaikan.

Jika anggota dwValueTypedari CERT_RDN_ATTR CERT_RDN_ANY_TYPE, jenis nilai diabaikan.

Jika anggota pbDatadari CERT_RDN_VALUE_BLOB adalah NULL, nilai apa pun cocok.

Saat ini, hanya kecocokan yang tepat dan peka huruf besar/kecil yang didukung.

Untuk informasi tentang opsi Unicode, lihat Keterangan. Ketika nilai-nilai ini diatur, pencarian dibatasi untuk sertifikat yang jenis pengodeannya cocok dengan dwMsgAndCertEncodingType.

CERT_FIND_SUBJECT_CERT
struktur CERT_INFO
Mencari sertifikat dengan pengeluar sertifikat dan nomor seri yang cocok dengan penerbit dan nomor seri dalam struktur CERT_INFO .
CERT_FIND_SUBJECT_NAME
struktur CERT_NAME_BLOB
Mencari sertifikat dengan kecocokan yang tepat dari seluruh nama subjek dengan nama dalam struktur CERT_NAME_BLOB . Pencarian dibatasi untuk sertifikat yang cocok dengan nilai dwMsgAndCertEncodingType.
CERT_FIND_SUBJECT_STR
Untai (karakter) lebar null-terminated (Unicode)
Mencari sertifikat yang berisi string nama subjek yang ditentukan. Anggota subjek sertifikat dikonversi ke string nama dengan jenis yang sesuai menggunakan bentuk CertNameToStr yang sesuai yang diformat sebagai CERT_SIMPLE_NAME_STR. Kemudian pencocokan substring-within-a-string yang tidak sensitif huruf besar/kecil dilakukan. Ketika nilai ini diatur, pencarian dibatasi untuk sertifikat yang jenis pengodeannya cocok dengan dwMsgAndCertEncodingType.
 
Catatan Ada bentuk alternatif dari nilai dwFindType yang meneruskan string di pvFindPara. Satu formulir menggunakan string Unicode, dan yang lainnya string ASCII . Nilai yang berakhiran "_W" atau tanpa akhiran menggunakan Unicode. Nilai yang diakhir dengan "_A" menggunakan string ASCII .
 

pvFindPara

Menunjuk ke item data atau struktur yang akan digunakan dengan jenis temukan yang ditunjukkan oleh nilai dwFindType.

Keterangan

Anggota dwFindFlags digunakan untuk memodifikasi kriteria beberapa jenis pencarian.

Nilai dwFindFlags CERT_UNICODE_IS_RDN_ATTRS_FLAG hanya digunakan dengan nilai CERT_FIND_SUBJECT_ATTR dan CERT_FIND_ISSUER_ATTR untuk dwFindType. CERT_UNICODE_IS_RDN_ATTRS_FLAG harus diatur jika struktur CERT_RDN_ATTR yang diacu oleh pvFindPara diinisialisasi dengan string Unicode. Sebelum perbandingan dibuat, string yang akan dicocokkan dikonversi dengan menggunakan X509_UNICODE_NAME untuk menyediakan perbandingan Unicode.

Nilai dwFindFlags berikut hanya digunakan dengan nilai CERT_FIND_ENKEY_USAGE untuk dwFindType.

Nilai Makna
CERT_FIND_OR_ENHKEY_USAGE_FLAG Kriteria pencarian dapat diubah dengan mengatur satu atau beberapa bendera. Secara default, jika anggota pszUsageIdentifier dari struktur CERT_ENHKEY_USAGE yang diarahkan oleh pvFindPara harus dicocokkan, setiap pengidentifikasi harus dicocokkan untuk memenuhi kriteria pencarian. Namun, jika CERT_FIND_OR_ENHKEY_USAGE_FLAG diatur, kecocokan dapat dilakukan untuk semua pengidentifikasi yang digabungkan dengan menggunakan operasi bitwise-OR; dengan demikian, mencocokkan salah satu pengidentifikasi sudah cukup.
CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG Ketika bendera ini diatur, selain kecocokan biasa, sertifikat apa pun yang tidak memiliki ekstensi penggunaan kunci yang ditingkatkan atau properti penggunaan kunci yang ditingkatkan memenuhi kriteria pencarian.
CERT_FIND_NO_ENHKEY_USAGE_FLAG Ketika bendera ini diatur, hanya sertifikat yang tidak memiliki penggunaan kunci yang ditingkatkan atau properti penggunaan kunci yang ditingkatkan yang cocok. Pengaturan bendera ini lebih diutamakan daripada pvFindPara menjadi NULL.
CERT_FIND_VALID_ENHKEY_USAGE_FLAG Ketika bendera ini diatur, fungsi hanya cocok dengan sertifikat yang valid untuk penggunaan yang ditentukan. Secara default, agar cocok, sertifikat harus valid untuk semua penggunaan.

CERT_FIND_OR_ENHKEY_USAGE_FLAG juga dapat diatur jika sertifikat hanya perlu valid untuk salah satu penggunaan yang ditentukan. Perhatikan bahwa CertGetValidUsages dipanggil untuk mendapatkan daftar penggunaan yang valid untuk sertifikat. Hanya CERT_FIND_OR_ENHKEY_USAGE_FLAG yang juga dapat berlaku saat CERT_FIND_VALID_ENHKEY_USAGE_FLAG diatur.

CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG Ketika bendera ini diatur, proses pencocokan hanya melibatkan pengidentifikasi penggunaan ekstensi. Jika pvFindPara adalah NULL atau anggota cUsageIdentifier dari struktur CERT_ENHKEY_USAGE yang ditunjukkan oleh pvFindPara adalah nol, sertifikat apa pun yang memiliki ekstensi penggunaan kunci yang ditingkatkan adalah kecocokan. Jika CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG juga diatur, sertifikat apa pun tanpa ekstensi penggunaan kunci yang ditingkatkan juga cocok. Jika CERT_FIND_NO_ENHKEY_USAGE_FLAG juga diatur, hanya sertifikat tanpa ekstensi penggunaan kunci yang ditingkatkan yang cocok.
CERT_FIND_EXT_PROP_ENHKEY_USAGE_FLAG Ketika bendera ini diatur, proses pencocokan hanya melibatkan pengidentifikasi penggunaan yang merupakan properti. Jika pvFindPara adalah NULL atau cUsageIdentifier diatur ke nol, sertifikat apa pun yang memiliki properti penggunaan kunci yang ditingkatkan adalah kecocokan. Jika CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG juga diatur, sertifikat apa pun tanpa properti penggunaan kunci yang ditingkatkan juga cocok. Jika CERT_FIND_NO_ENHKEY_USAGE_FLAG diatur, hanya sertifikat tanpa properti penggunaan kunci yang ditingkatkan yang cocok.
CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG Hanya digunakan dengan nilai CERT_FIND_SUBJECT_ATTR dan CERT_FIND_ISSUER-ATTR dwFindType. Secara default, pencocokan persis peka huruf besar/kecil dibuat. Jika bendera ini diatur, kecocokan tidak peka huruf besar/kecil.

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header wincrypt.h