Fungsi CertCreateContext (wincrypt.h)

Fungsi CertCreateContext membuat konteks yang ditentukan dari byte yang dikodekan. Konteks yang dibuat tidak menyertakan properti yang diperluas.

Sintaks

const void * CertCreateContext(
  [in]           DWORD                     dwContextType,
  [in]           DWORD                     dwEncodingType,
  [in]           const BYTE                *pbEncoded,
  [in]           DWORD                     cbEncoded,
  [in]           DWORD                     dwFlags,
  [in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);

Parameter

[in] dwContextType

Menentukan konteks yang dapat dibuat. Misalnya, untuk membuat kontekssertifikat, atur dwContextType ke CERT_STORE_CERTIFICATE_CONTEXT.

Bendera jenis konteks yang saat ini ditentukan diperlihatkan dalam tabel berikut.

Nilai Makna
CERT_STORE_CERTIFICATE_CONTEXT
Konteks sertifikat.
CERT_STORE_CRL_CONTEXT
Konteks CRL.
CERT_STORE_CTL_CONTEXT
Konteks CTL.

[in] dwEncodingType

Menentukan jenis pengodean yang digunakan. Saat ini, hanya X509_ASN_ENCODING dan PKCS_7_ASN_ENCODING yang digunakan; namun, jenis pengodean tambahan dapat ditambahkan di masa mendatang. Untuk salah satu jenis pengodean saat ini, gunakan:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbEncoded

Penunjuk ke buffer yang berisi konten konteks yang dikodekan yang ada untuk disalin.

[in] cbEncoded

Ukuran, dalam byte, dari buffer pbEncoded .

[in] dwFlags

Nilai bendera berikut ditentukan dan dapat digabungkan dengan menggunakan operasi bitwise-OR.

Nilai Makna
CERT_CREATE_CONTEXT_NOCOPY_FLAG
Konteks yang dibuat menunjuk langsung ke konten yang diacu oleh pbEncoded alih-alih salinan yang dialokasikan.
CERT_CREATE_CONTEXT_SORTED_FLAG
Fungsi ini membuat konteks dengan entri yang diurutkan. Saat ini, bendera ini hanya berlaku untuk konteks CTL.

Untuk CCL, anggota cCTLEntry dari struktur CTL_INFO yang dikembalikan selalu nol. CertFindSubjectInSortedCTL dan CertEnumSubjectInSortedCTL harus dipanggil untuk menemukan atau menghitung entri CTL.

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
Secara default, saat konteks CTL dibuat, handel HCRYTPMSG ke pesan SignedData-nya dibuat. Bendera ini dapat diatur untuk meningkatkan performa dengan tidak membuat handel ini. Bendera ini hanya dapat digunakan ketika dwContextType CERT_STORE_CTL_CONTEXT.
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
Secara default, ketika konteks CTL dibuat, entrinya didekodekan. Ketika bendera ini diatur, entri tidak didekodekan dan performa ditingkatkan. Bendera ini hanya dapat digunakan ketika dwContextType CERT_STORE_CTL_CONTEXT.

[in, optional] pCreatePara

Penunjuk ke struktur CERT_CREATE_CONTEXT_PARA .

Jika pCreatePara dan anggota pfnFree keduanya non-NULL, anggota pfnFree digunakan untuk membebaskan memori yang ditentukan oleh anggota pvFree . Jika anggota pvFree adalah NULL, anggota pfnFree digunakan untuk membebaskan pointer pbEncoded .

Jika pCreatePara atau anggota pfnFree-nyaadalah NULL, tidak ada upaya yang dilakukan untuk membebaskan pbEncoded.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah penunjuk ke konteks yang baru dibuat. Anggota pvFree dari pCreatePara harus dipanggil untuk membebaskan konteks yang dibuat.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Jika GetLastError mengembalikan ERROR_CANCELLED, ini berarti bahwa fungsi panggilan balik PFN_CERT_CREATE_CONTEXT_SORT_FUNC mengembalikan FALSE untuk menghentikan pengurutan.

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

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

Fungsi Pemeliharaan Penyimpanan Sertifikat dan Sertifikat