Fungsi CertGetCRLFromStore (wincrypt.h)

Fungsi CertGetCRLFromStore mendapatkan konteksdaftar pencabutan sertifikat (CRL) pertama atau berikutnya dari penyimpanan sertifikat untuk penerbit yang ditentukan. Fungsi ini juga melakukan pemeriksaan verifikasi yang diaktifkan pada CRL. Fungsi Verifikasi Rantai Sertifikat baru direkomendasikan alih-alih fungsi ini.

Sintaks

PCCRL_CONTEXT CertGetCRLFromStore(
  [in]           HCERTSTORE     hCertStore,
  [in, optional] PCCERT_CONTEXT pIssuerContext,
  [in]           PCCRL_CONTEXT  pPrevCrlContext,
  [in, out]      DWORD          *pdwFlags
);

Parameter

[in] hCertStore

Menangani penyimpanan sertifikat.

[in, optional] pIssuerContext

Penunjuk ke CERT_CONTEXT pengeluar sertifikat. Penunjuk pIssuerContext dapat berasal dari penyimpanan ini atau penyimpanan lain, atau dapat dibuat oleh panggilan CertCreateCertificateContext. Jika NULL diteruskan untuk parameter ini, semua CRL di penyimpanan ditemukan.

[in] pPrevCrlContext

Penunjuk ke CRL_CONTEXT. Pengeluar sertifikat dapat memiliki beberapa CRL. Misalnya, ia dapat menghasilkan CRL delta dengan menggunakan ekstensi X.509 versi 3. Parameter ini harus NULL pada panggilan pertama untuk mendapatkan CRL. Untuk mendapatkan CRL berikutnya untuk pengeluar sertifikat, parameter diatur ke CRL_CONTEXT yang dikembalikan oleh panggilan sebelumnya. pPrevCrlContextnon-NULL selalu dibebaskan oleh fungsi ini dengan memanggil CertFreeCRLContext, bahkan untuk kesalahan.

[in, out] pdwFlags

Nilai bendera berikut didefinisikan untuk mengaktifkan pemeriksaan verifikasi pada CRL yang dikembalikan. Bendera ini dapat digabungkan menggunakan operasi bitwise-OR.

Nilai Makna
CERT_STORE_SIGNATURE_FLAG
Menggunakan kunci umum dalam sertifikat penerbit untuk memverifikasi tanda tangan pada CRL yang dikembalikan.
CERT_STORE_TIME_VALIDITY_FLAG
Mendapatkan waktu saat ini dan memverifikasi bahwa waktunya dalam waktu antara ThisUpdate dan NextUpdate CRL.
CERT_STORE_BASE_CRL_FLAG
Mendapatkan CRL dasar.
CERT_STORE_DELTA_CRL_FLAG
Mendapatkan CRL delta.
 

Jika pemeriksaan verifikasi yang diaktifkan berhasil, benderanya diatur ke nol.

Jika pemeriksaan verifikasi yang diaktifkan gagal, benderanya tetap ditetapkan saat pengembalian. Jika pIssuerContext adalah NULL, maka CERT_STORE_SIGNATURE_FLAG yang diaktifkan selalu gagal dan CERT_STORE_NO_ISSUER_FLAG juga diatur. Untuk mengetahui detail selengkapnya, harap lihat Keterangan.

Jika hanya salah satu dari CERT_STORE_BASE_CRL_FLAG atau CERT_STORE_DELTA_CRL_FLAG yang diatur, fungsi ini mengembalikan CRL dasar atau delta dan bendera dasar atau delta yang sesuai akan dibersihkan saat dikembalikan. Jika kedua bendera diatur, hanya salah satu bendera yang akan dihapus.

Untuk kegagalan pemeriksaan verifikasi, pointer ke CRL_CONTEXT pertama atau berikutnya masih dikembalikan dan GetLastError tidak diperbarui.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah penunjuk ke CRL_CONTEXT baca-saja.

Jika fungsi gagal dan CRL pertama atau berikutnya tidak ditemukan, nilai yang dikembalikan adalah NULL.

CRL_CONTEXT yang dikembalikan harus dibebaskan dengan memanggil CertFreeCRLContext. Namun, ketika CRL_CONTEXT yang dikembalikan disediakan untuk pPrevCrlContext pada panggilan berikutnya, fungsi membebaskannya.

Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan mengikuti.

Nilai Deskripsi
E_INVALIDARG
Handel dalam parameter hCertStore tidak sama dengan yang dalam konteks CRL yang diarahkan oleh parameter pPrevCrlContext , atau bendera yang tidak didukung diatur dalam pdwFlags.
CRYPT_E_NOT_FOUND
Baik tidak ada CRL yang ada di penyimpanan untuk penerbit, atau fungsi mencapai akhir daftar penyimpanan.

Keterangan

CertDuplicateCRLContext dapat dipanggil untuk membuat CRL duplikat.

Nilai heksadesimal bendera dapat digabungkan menggunakan operasi bitwise-OR untuk mengaktifkan kedua verifikasi. Misalnya, untuk mengaktifkan kedua verifikasi, nilai DWORD yang diarahkan oleh pdwFlags diatur ke nilai CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG. Jika verifikasi CERT_STORE_SIGNATURE_FLAG berhasil, tetapi verifikasi CERT_STORE_TIME_VALIDITY_FLAG gagal, nilai DWORD yang ditunjukkan oleh pdwFlags diatur ke CERT_STORE_TIME_VALIDITY_FLAG saat fungsi kembali.

Persyaratan

   
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

CertCreateCertificateContext

CertDuplicateCRLContext

CertFreeCRLContext

CertGetCRLContextProperty

Fungsi Daftar Pencabutan Sertifikat