Fungsi CertAddCertificateContextToStore (wincrypt.h)
Fungsi CertAddCertificateContextToStore menambahkan konteks sertifikat ke penyimpanan sertifikat.
Sintaks
BOOL CertAddCertificateContextToStore(
[in] HCERTSTORE hCertStore,
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCERT_CONTEXT *ppStoreContext
);
Parameter
[in] hCertStore
Menangani penyimpanan sertifikat.
[in] pCertContext
Penunjuk ke struktur CERT_CONTEXT untuk ditambahkan ke penyimpanan.
[in] dwAddDisposition
Menentukan tindakan yang akan diambil jika sertifikat yang cocok atau tautan ke sertifikat yang cocok sudah ada di penyimpanan. Nilai disposisi yang ditentukan saat ini dan penggunaannya adalah sebagai berikut.
Nilai | Makna |
---|---|
|
Fungsi ini tidak membuat pemeriksaan untuk sertifikat yang cocok atau tautan yang ada ke sertifikat yang cocok. Sertifikat baru selalu ditambahkan ke penyimpanan. Ini dapat menyebabkan duplikat di toko. |
|
Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok ada, operasi gagal. GetLastError mengembalikan kode CRYPT_E_EXISTS. |
|
Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok ada dan waktu NotBefore dari konteks yang ada sama dengan atau lebih besar dari waktu NotBefore dari konteks baru yang ditambahkan, operasi gagal dan GetLastError mengembalikan kode CRYPT_E_EXISTS.
Jika waktu NotBefore dari konteks yang ada kurang dari waktu NotBefore dari konteks baru yang ditambahkan, sertifikat atau tautan yang ada akan dihapus dan sertifikat baru dibuat dan ditambahkan ke penyimpanan. Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok tidak ada, tautan baru ditambahkan. Jika daftar pencabutan sertifikat (CRL) atau daftar kepercayaan sertifikat (CTL) sedang dibandingkan, waktu ThisUpdate digunakan. |
|
Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok ada dan waktu NotBefore dari konteks yang ada sama dengan atau lebih besar dari waktu NotBefore dari konteks baru yang ditambahkan, operasi gagal dan GetLastError mengembalikan kode CRYPT_E_EXISTS.
Jika waktu NotBefore dari konteks yang ada kurang dari waktu NotBefore dari konteks baru yang ditambahkan, konteks yang ada akan dihapus sebelum membuat dan menambahkan konteks baru. Konteks baru yang ditambahkan mewarisi properti dari sertifikat yang ada. Jika CRL atau CTL sedang dibandingkan, waktu ThisUpdate digunakan. |
|
Jika ada tautan ke sertifikat yang cocok, sertifikat atau tautan yang sudah ada akan dihapus dan sertifikat baru dibuat dan ditambahkan ke penyimpanan. Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok tidak ada, tautan baru ditambahkan. |
|
Jika sertifikat yang cocok ada di penyimpanan, konteks yang ada tidak diganti. Konteks yang ada mewarisi properti dari sertifikat baru. |
|
Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok ada, sertifikat atau tautan yang ada digunakan dan properti dari sertifikat baru ditambahkan. Fungsi ini tidak gagal, tetapi tidak menambahkan konteks baru. Jika pCertContext bukan NULL, konteks yang ada diduplikasi.
Jika sertifikat yang cocok atau tautan ke sertifikat yang cocok tidak ada, sertifikat baru ditambahkan. |
[out, optional] ppStoreContext
Penunjuk ke penunjuk ke salinan yang akan dibuat dari sertifikat yang ditambahkan ke penyimpanan.
Parameter ppStoreContext dapat berupa NULL, menunjukkan bahwa aplikasi panggilan tidak memerlukan salinan sertifikat yang ditambahkan. Jika salinan dibuat, salinan harus dikosongkan dengan menggunakan CertFreeCertificateContext.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan mengikuti.
Menampilkan kode | Deskripsi |
---|---|
|
Nilai ini dikembalikan jika CERT_STORE_ADD_NEW diatur dan sertifikat sudah ada di penyimpanan, atau jika CERT_STORE_ADD_NEWER diatur dan sertifikat ada di penyimpanan dengan tanggal NotBefore yang lebih besar dari atau sama dengan tanggal NotBefore pada sertifikat yang akan ditambahkan. |
|
Nilai disposisi yang tidak valid ditentukan dalam parameter dwAddDisposition . |
Kesalahan dari fungsi yang disebut, CertAddEncodedCertificateToStore dan CertSetCertificateContextProperty, dapat disebarluaskan ke fungsi ini.
Keterangan
Konteks sertifikat tidak diduplikasi menggunakan CertDuplicateCertificateContext. Sebagai gantinya, fungsi membuat salinan konteks baru dan menambahkannya ke penyimpanan.
Selain sertifikat yang dikodekan, CertDuplicateCertificateContext juga menyalin properti konteks, dengan pengecualian properti CERT_KEY_PROV_HANDLE_PROP_ID dan CERT_KEY_CONTEXT_PROP_ID.
Untuk menghapus konteks sertifikat dari penyimpanan sertifikat, gunakan fungsi CertDeleteCertificateFromStore .
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
CertAddEncodedCertificateToStore