Fungsi CryptEncodeObject (wincrypt.h)
Fungsi CryptEncodeObject mengodekan struktur jenis yang ditunjukkan oleh nilai parameter lpszStructType . Penggunaan CryptEncodeObjectEx direkomendasikan sebagai API yang melakukan fungsi yang sama dengan peningkatan performa yang signifikan.
Sintaks
BOOL CryptEncodeObject(
[in] DWORD dwCertEncodingType,
[in] LPCSTR lpszStructType,
[in] const void *pvStructInfo,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded
);
Parameter
[in] dwCertEncodingType
Jenis pengodean yang digunakan. Selalu dapat diterima untuk menentukan jenis pengodean sertifikat dan pesan 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] lpszStructType
Penunjuk ke OID yang menentukan jenis struktur. Jika kata urutan tinggi dari parameter lpszStructType adalah nol, kata urutan rendah menentukan pengidentifikasi bilangan bulat untuk jenis struktur yang ditentukan. Jika tidak, parameter ini adalah penunjuk panjang ke string yang dihentikan null.
Untuk informasi selengkapnya tentang string pengidentifikasi objek, konstanta yang telah ditentukan dan struktur yang sesuai, lihat Konstanta untuk CryptEncodeObject dan CryptDecodeObject.
[in] pvStructInfo
Penunjuk ke struktur yang akan dikodekan. Struktur harus dari jenis yang ditentukan oleh lpszStructType.
[out] pbEncoded
Penunjuk ke buffer untuk menerima struktur yang dikodekan. Ketika buffer yang ditentukan tidak cukup besar untuk menerima struktur yang didekodekan, fungsi mengatur kode ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan, dalam byte, dalam variabel yang ditunjukkan oleh pcbEncoded.
Parameter ini dapat berupa NULL untuk mengambil ukuran informasi ini untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.
[in, out] pcbEncoded
Penunjuk ke variabel DWORD yang berisi ukuran, dalam byte, dari buffer yang diacu oleh parameter pbEncoded . Saat fungsi kembali, nilai DWORD berisi jumlah byte yang dikodekan yang dialokasikan yang disimpan dalam buffer.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol (TRUE).
Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan tercantum dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Terjadi kesalahan saat pengodean. |
|
Fungsi pengodean tidak dapat ditemukan untuk dwCertEncodingType dan lpszStructType yang ditentukan. |
|
Jika buffer yang ditentukan oleh parameter pbEncoded tidak cukup besar untuk menyimpan data yang dikembalikan, fungsi mengatur kode ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan, dalam byte, dalam variabel yang ditunjukkan oleh pcbEncoded. |
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.
Keterangan
Saat mengodekan objek kriptografi menggunakan fungsi CryptEncodeObjectEx pilihan, karakter NULL yang mengakhiri disertakan. Saat mendekode, menggunakan fungsi CryptDecodeObjectEx pilihan, karakter NULL yang mengakhiri tidak dipertahankan.
Contoh
Untuk contoh yang menggunakan fungsi ini, lihat Contoh Program C: Membuat Permintaan Sertifikat dan Contoh Program C: Pengodean dan Pendekodean ASN.1.
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 |