Fungsi CryptDecodeObject (wincrypt.h)
Fungsi CryptDecodeObject mendekode struktur jenis yang ditunjukkan oleh parameter lpszStructType . Penggunaan CryptDecodeObjectEx direkomendasikan sebagai API yang melakukan fungsi yang sama dengan peningkatan performa yang signifikan.
Sintaks
BOOL CryptDecodeObject(
[in] DWORD dwCertEncodingType,
[in] LPCSTR lpszStructType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[in] DWORD dwFlags,
[out] void *pvStructInfo,
[in, out] DWORD *pcbStructInfo
);
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] pbEncoded
Penunjuk ke struktur yang dikodekan untuk didekodekan.
[in] cbEncoded
Jumlah byte yang diacu oleh pbEncoded.
[in] dwFlags
Bendera berikut ditentukan. Mereka dapat dikombinasikan dengan operasi bitwise-OR.
[out] pvStructInfo
Penunjuk ke buffer untuk menerima struktur yang didekodekan. 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 pcbStructInfo.
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] pcbStructInfo
Penunjuk ke nilai DWORD yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter pvStructInfo . Ketika fungsi kembali, nilai DWORD ini berisi ukuran data yang didekodekan yang disalin ke pvStructInfo. Ukuran yang terkandung dalam variabel yang diacu oleh pcbStructInfo dapat menunjukkan ukuran yang lebih besar dari struktur yang didekodekan, karena struktur yang didekodekan dapat mencakup pointer ke struktur lain. Ukuran ini adalah jumlah ukuran yang diperlukan oleh struktur yang didekodekan dan struktur lain yang ditujukan.
Nilai kembali
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 mendekode. |
|
Fungsi decoding tidak dapat ditemukan untuk dwCertEncodingType dan lpszStructType yang ditentukan |
|
Jika buffer yang ditentukan oleh parameter pvStructInfo 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 pcbStructInfo. |
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: 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 |
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