Bagikan melalui


Fungsi CertFindCRLInStore (wincrypt.h)

Fungsi CertFindCRLInStore menemukan konteks daftar pencabutan sertifikat (CRL) pertama atau berikutnya di penyimpanan sertifikat yang cocok dengan kriteria pencarian yang ditetapkan oleh parameter dwFindType dan parameter pvFindPara terkait. Fungsi ini dapat digunakan dalam perulangan untuk menemukan semua konteks CRL di penyimpanan sertifikat yang cocok dengan kriteria temukan yang ditentukan.

Sintaks

PCCRL_CONTEXT CertFindCRLInStore(
  [in] HCERTSTORE    hCertStore,
  [in] DWORD         dwCertEncodingType,
  [in] DWORD         dwFindFlags,
  [in] DWORD         dwFindType,
  [in] const void    *pvFindPara,
  [in] PCCRL_CONTEXT pPrevCrlContext
);

Parameter

[in] hCertStore

Handel penyimpanan sertifikat yang akan dicari.

[in] dwCertEncodingType

Parameter ini saat ini tidak digunakan. Ini harus diatur ke nol.

[in] dwFindFlags

Jika dwFindType CRL_FIND_ISSUED_BY, secara default, hanya pencocokan nama penerbit yang dilakukan. Bendera berikut dapat digunakan untuk melakukan pemfilteran tambahan.

Nilai Makna
CRL_FIND_ISSUED_BY_AKI_FLAG
Memeriksa CRL yang memiliki ekstensi Authority Key Identifier (AKI). Jika CRL memiliki AKI, hanya CRL yang AKI-nya cocok dengan pengeluar sertifikat yang dikembalikan.
Catatan Ekstensi AKI memiliki nilai pengidentifikasi objek (OID) szOID_AUTHORITY_KEY_IDENTIFIER2 dan struktur data yang sesuai.
 
CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
Gunakan kunci umum dalam sertifikat penerbit untuk memverifikasi tanda tangan pada CRL. Hanya mengembalikan CRL yang memiliki tanda tangan yang valid.
CRL_FIND_ISSUED_BY_DELTA_FLAG
Menemukan dan mengembalikan CRL delta.
CRL_FIND_ISSUED_BY_BASE_FLAG
Menemukan dan mengembalikan CRL dasar.
CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG
Tanda tangan diperiksa kekuatannya setelah verifikasi berhasil. Bendera ini hanya berlaku ketika parameter dwFindType diatur ke CRL_FIND_ISSUED_FOR. Anda juga harus mengatur CRL_FIND_ISSUED_BY_SIGNATURE_FLAG. Jika berhasil, properti tanda tangan kuat berikut akan diatur pada konteks CRL:
  • CERT_SIGN_HASH_CNG_ALG_PROP_ID
  • CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Windows 8 dan Windows Server 2012: Dukungan untuk bendera ini dimulai.

[in] dwFindType

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

Nilai Makna
CRL_FIND_ANY
Parameter pvFindPara tidak digunakan. Ini harus diatur ke NULL.
Tidak ada kriteria pencarian. CRL berikutnya di toko dikembalikan.
CRL_FIND_ISSUED_BY
Penunjuk ke CERT_CONTEXT.
Mencari CRL berikutnya di toko yang cocok dengan penerbit di CERT_CONTEXT.
CRL_FIND_EXISTING
Penunjuk ke CRL_CONTEXT.
Mencari CRL berikutnya yang cocok dengan CRL_CONTEXT dengan cara berikut:
  • Keduanya adalah CRL dasar atau delta.
  • Blob nama penerbit untuk keduanya identik.
  • Jika ada, Blob ekstensi yang dikodekan Authority/KeyIdentifier dan IssuingDistributionPoint cocok.
CRL_FIND_ISSUED_FOR
Penunjuk ke CRL_FIND_ISSUED_FOR_PARA.
Mencari CRL berikutnya di penyimpanan yang cocok dengan penerbit sertifikat subjek dalam struktur CRL_FIND_ISSUED_FOR_PARA.

Jika tidak ada CRL yang ditemukan, cari CRL berikutnya di penyimpanan yang cocok dengan penerbit dalam struktur CRL_FIND_ISSUED_FOR_PARA.

Catatan Saat menggunakan sertifikat silang, nama subjek dalam sertifikat penerbit mungkin tidak cocok dengan nama pengeluar sertifikat dalam sertifikat subjek dan CRL yang sesuai.
 

[in] pvFindPara

Parameter ini ditentukan oleh nilai dwFindType. Untuk detailnya, lihat tabel sebelumnya dalam topik ini.

[in] pPrevCrlContext

Penunjuk ke CRL_CONTEXT terakhir yang dikembalikan oleh fungsi ini. Harus NULL untuk mendapatkan CRL pertama di toko yang memenuhi kriteria pencarian. CRL berturut-turut yang memenuhi kriteria pencarian dapat ditemukan dengan mengatur pPrevCrlContext ke penunjuk PCCRL_CONTEXT yang dikembalikan oleh panggilan sebelumnya ke fungsi. Proses pencarian melewati CRL apa pun yang tidak cocok dengan kriteria pencarian atau yang sebelumnya telah dihapus dari penyimpanan oleh CertDeleteCRLFromStore. Fungsi ini membebaskan CRL_CONTEXT yang dirujuk oleh nilai parameter ini yang bukan NULL.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan penunjuk ke konteks CRL baca-saja. Setelah Anda selesai menggunakan konteks CRL yang dikembalikan, bebaskan dengan memanggil fungsi CertFreeCRLContext atau secara implisit membebaskannya dengan meneruskannya sebagai parameter pPrevCrlContext pada panggilan berikutnya ke fungsi CertFindCRLInStore .

Jika fungsi gagal dan CRL yang cocok dengan kriteria pencarian tidak ditemukan, nilai yang dikembalikan adalah NULL. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan mengikuti.

Menampilkan kode Deskripsi
E_INVALIDARG
Handel dalam parameter hCertStore tidak sama dengan yang dalam konteks CRL yang diarahkan oleh parameter pPrevCrlContext , atau jenis pencarian yang tidak valid ditentukan dalam parameter dwFindType .
CRYPT_E_NOT_FOUND
Tidak ada CRL di penyimpanan, tidak ada CRL yang ditemukan yang cocok dengan kriteria pencarian, atau akhir daftar penyimpanan tercapai.

Keterangan

Pointer yang dikembalikan dibebaskan ketika diteruskan sebagai parameter pPrevCrlContext pada panggilan berikutnya ke fungsi. Jika tidak, pointer harus dibebaskan secara eksplisit dengan memanggil CertFreeCRLContext. pPrevCrlContext yang bukan NULL selalu dibebaskan oleh CertFindCRLInStore menggunakan panggilan ke CertFreeCRLContext, bahkan jika ada kesalahan dalam fungsi.

CertDuplicateCRLContext dapat dipanggil untuk membuat duplikat konteks yang dikembalikan. Konteks CRL yang dikembalikan dapat ditambahkan ke penyimpanan sertifikat yang berbeda dengan menggunakan CertAddCRLContextToStore, atau tautan ke konteks CRL tersebut dapat ditambahkan ke penyimpanan nonkoleksi dengan menggunakan CertAddCRLLinkToStore.

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

CRL_CONTEXT

CertAddCRLContextToStore

CertAddCRLLinkToStore

CertDeleteCRLFromStore

CertDuplicateCRLContext

CertFreeCRLContext

Fungsi Daftar Pencabutan Sertifikat