Fungsi CertGetIssuerCertificateFromStore (wincrypt.h)
Fungsi CertGetIssuerCertificateFromStore mengambil konteks sertifikat dari penyimpanan sertifikat untuk penerbit pertama atau berikutnya dari sertifikat subjek yang ditentukan. Fungsi Verifikasi Rantai Sertifikat baru direkomendasikan alih-alih penggunaan fungsi ini.
Sintaks
PCCERT_CONTEXT CertGetIssuerCertificateFromStore(
[in] HCERTSTORE hCertStore,
[in] PCCERT_CONTEXT pSubjectContext,
[in, optional] PCCERT_CONTEXT pPrevIssuerContext,
[in, out] DWORD *pdwFlags
);
Parameter
[in] hCertStore
Menangani penyimpanan sertifikat.
[in] pSubjectContext
Penunjuk ke struktur CERT_CONTEXT yang berisi informasi subjek. Parameter ini dapat diperoleh dari penyimpanan sertifikat apa pun atau dapat dibuat oleh aplikasi panggilan menggunakan fungsi CertCreateCertificateContext .
[in, optional] pPrevIssuerContext
Penunjuk ke struktur CERT_CONTEXT yang berisi informasi penerbit. Penerbit dapat memiliki beberapa sertifikat, terutama ketika periode validitas akan berubah. Parameter ini harus NULL pada panggilan untuk mendapatkan sertifikat penerbit pertama. Untuk mendapatkan sertifikat berikutnya untuk penerbit, atur pPrevIssuerContext ke struktur CERT_CONTEXT yang dikembalikan oleh panggilan sebelumnya.
Fungsi ini membebaskan CERT_CONTEXT yang dirujuk oleh nilai non-NULL dari parameter ini.
[in, out] pdwFlags
Bendera berikut mengaktifkan pemeriksaan verifikasi pada sertifikat yang dikembalikan. Mereka dapat digabungkan menggunakan operasi bitwise-OR untuk mengaktifkan beberapa verifikasi.
Jika pemeriksaan verifikasi jenis yang diaktifkan berhasil, benderanya diatur ke nol. Jika gagal, benderanya tetap ditetapkan saat kembali. Untuk CERT_STORE_REVOCATION_FLAG, verifikasi berhasil jika fungsi tidak menemukan CRL yang terkait dengan sertifikat subjek.
Jika CERT_STORE_REVOCATION_FLAG diatur dan penerbit tidak memiliki CRL di penyimpanan, CERT_STORE_NO_CRL_FLAG diatur dan CERT_STORE_REVOCATION_FLAG tetap ditetapkan.
Jika CERT_STORE_SIGNATURE_FLAG atau CERT_STORE_REVOCATION_FLAG diatur, CERT_STORE_NO_ISSUER_FLAG diatur jika fungsi tidak menemukan sertifikat penerbit di penyimpanan. Untuk mengetahui detail selengkapnya, harap lihat Keterangan.
Dalam kasus kegagalan pemeriksaan verifikasi, pointer ke CERT_CONTEXT penerbit masih dikembalikan dan GetLastError tidak diperbarui.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah penunjuk ke pengeluar sertifikat baca-saja CERT_CONTEXT.
Jika fungsi gagal dan sertifikat pengeluar sertifikat pertama atau berikutnya tidak ditemukan, nilai yang dikembalikan adalah NULL.
Hanya struktur CERT_CONTEXT terakhir yang dikembalikan yang harus dibebaskan dengan memanggil CertFreeCertificateContext. Ketika CERT_CONTEXT yang dikembalikan dari satu panggilan ke fungsi disediakan sebagai parameter pPrevIssuerContext pada panggilan berikutnya, konteks dibebaskan sebagai bagian dari tindakan fungsi.
Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan mengikuti.
Menampilkan kode | Deskripsi |
---|---|
|
Tidak ada pengeluar sertifikat yang ditemukan untuk sertifikat subjek. |
|
Sertifikat penerbit sama dengan sertifikat subjek. Ini adalah sertifikat akar yang ditandatangani sendiri. |
|
Handel dalam parameter hCertStore tidak sama dengan konteks sertifikat yang diarahkan oleh parameter pPrevIssuerContext , atau bendera yang tidak didukung diatur dalam pdwFlags. |
Keterangan
Penunjuk yang dikembalikan dibebaskan ketika diteruskan sebagai parameter pPrevIssuerContext pada panggilan berikutnya ke fungsi. Jika tidak, pointer harus dibebaskan secara eksplisit dengan memanggil CertFreeCertificateContext. pPrevIssuerContext yang bukan NULL selalu dibebaskan oleh CertGetIssuerCertificateFromStore menggunakan panggilan ke CertFreeCertificateContext, bahkan jika ada kesalahan dalam fungsi.
CertDuplicateCertificateContext dapat dipanggil untuk membuat duplikat sertifikat penerbit.
Nilai heksadesimal untuk dwFlags dapat digabungkan menggunakan operasi bitwise-OR untuk mengaktifkan beberapa verifikasi. Misalnya, untuk mengaktifkan validitas tanda tangan dan waktu, nilai 0x00000003 diteruskan dalam dwFlags pada input. Dalam hal ini, jika verifikasi CERT_STORE_SIGNATURE_FLAG berhasil tetapi verifikasi CERT_STORE_TIME_VALIDITY_FLAG gagal, dwFlags mengembalikan sebagai 0x00000002 pada output.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk