Fungsi CertAddEncodedCTLToStore (wincrypt.h)

Fungsi CertAddEncodedCTLToStore membuat konteksdaftar kepercayaan sertifikat (CTL) dari CTL yang dikodekan dan menambahkannya ke penyimpanan sertifikat. Fungsi ini membuat salinan konteks CTL sebelum menambahkannya ke penyimpanan.

Sintaks

BOOL CertAddEncodedCTLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwMsgAndCertEncodingType,
  [in]            const BYTE    *pbCtlEncoded,
  [in]            DWORD         cbCtlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCTL_CONTEXT *ppCtlContext
);

Parameter

[in] hCertStore

Menangani penyimpanan sertifikat.

[in] dwMsgAndCertEncodingType

Menentukan jenis pengodean yang digunakan. Jenis pengodean sertifikat dan pesan harus ditentukan dengan menggabungkannya dengan operasi bitwise-OR seperti yang ditunjukkan dalam contoh berikut:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Jenis pengodean yang saat ini ditentukan adalah:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCtlEncoded

Penunjuk ke buffer yang berisi CTL yang dikodekan untuk ditambahkan ke penyimpanan sertifikat.

[in] cbCtlEncoded

Ukuran, dalam byte, dari buffer pbCtlEncoded .

[in] dwAddDisposition

Menentukan tindakan yang akan diambil jika CTL yang cocok atau tautan ke CTL yang cocok sudah ada di penyimpanan. Nilai disposisi yang ditentukan saat ini dan penggunaannya adalah sebagai berikut

Nilai Makna
CERT_STORE_ADD_ALWAYS
Tidak melakukan pemeriksaan untuk CTL yang cocok atau tautan yang ada ke CTL yang cocok. CTL baru selalu ditambahkan ke penyimpanan. Ini dapat menyebabkan duplikat di toko.
CERT_STORE_ADD_NEW
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, operasi gagal. GetLastError mengembalikan kode CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, waktu ThisUpdate pada CTL dibandingkan. Jika CTL yang ada memiliki waktu ThisUpdate kurang dari waktu ThisUpdate pada CTL baru, CTL atau tautan lama diganti sama seperti CERT_STORE_ADD_REPLACE_EXISTING. Jika CTL yang ada memiliki waktu ThisUpdate yang lebih besar dari atau sama dengan waktu ThisUpdate pada CTL yang akan ditambahkan, fungsi gagal dengan GetLastError mengembalikan kode CRYPT_E_EXISTS.

Jika CTL yang cocok atau tautan ke CTL yang cocok tidak ditemukan di penyimpanan, CTL baru ditambahkan ke penyimpanan.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
Tindakan ini sama seperti untuk CERT_STORE_ADD_NEWER, kecuali bahwa jika CTL yang lebih lama diganti, properti CTL yang lebih lama dimasukkan ke dalam CTL pengganti.
CERT_STORE_ADD_REPLACE_EXISTING
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, CTL atau tautan yang ada akan dihapus dan CTL baru dibuat dan ditambahkan ke penyimpanan. Jika CTL yang cocok atau tautan ke CTL yang cocok tidak ada, CTL akan ditambahkan.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Jika CTL yang cocok ada di penyimpanan, konteks yang ada akan dihapus sebelum membuat dan menambahkan konteks baru. Konteks tambahan mewarisi properti dari CTL yang ada.
CERT_STORE_ADD_USE_EXISTING
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, CTL yang ada digunakan dan properti dari CTL baru ditambahkan. Fungsi ini tidak gagal, tetapi tidak ada CTL baru yang ditambahkan. Jika ppCertContext bukan NULL, konteks yang ada diduplikasi.

Jika CTL yang cocok atau tautan ke CTL yang cocok tidak ada, CTL baru ditambahkan.

[out, optional] ppCtlContext

Penunjuk ke penunjuk ke struktur CTL_CONTEXT yang didekodekan. Dapat berupa NULL yang menunjukkan bahwa aplikasi panggilan tidak memerlukan salinan CTL yang ditambahkan atau yang sudah ada. Jika salinan dibuat, salinan harus dikosongkan dengan menggunakan CertFreeCTLContext.

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
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW diatur, dan CTL sudah ada di toko; atau CERT_STORE_ADD_NEWER diatur dan ada CTL di penyimpanan dengan waktu ThisUpdate lebih besar dari atau sama dengan waktu ThisUpdate pada CTL yang akan ditambahkan.
E_INVALIDARG
Nilai disposisi yang tidak valid ditentukan dalam parameter dwAddDisposition , atau jenis pengodean yang tidak valid ditentukan. Saat ini, hanya jenis pengodean yang X509_ASN_ENCODING dan PKCS_7_ASN_ENCODING yang didukung.
 

Jika fungsi gagal, GetLastError dapat mengembalikan kesalahan pengodean/pendekodean Abstract Syntax Notation One (ASN.1). Untuk informasi tentang kesalahan ini, lihat Nilai Pengembalian Pengodean/Pendekodean ASN.1.

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

CertAddCTLContextToStore

CertFreeCTLContext

Fungsi Daftar Kepercayaan Sertifikat