Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi CryptDecryptMessagemendekode dan mendekripsi pesan.
Sintaks
BOOL CryptDecryptMessage(
[in] PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara,
[in] const BYTE *pbEncryptedBlob,
[in] DWORD cbEncryptedBlob,
[out, optional] BYTE *pbDecrypted,
[in, out, optional] DWORD *pcbDecrypted,
[out, optional] PCCERT_CONTEXT *ppXchgCert
);
Parameter
[in] pDecryptPara
Penunjuk ke struktur CRYPT_DECRYPT_MESSAGE_PARA yang berisi parameter dekripsi.
[in] pbEncryptedBlob
Penunjuk ke buffer yang berisi pesan yang dikodekan dan dienkripsi untuk didekripsi .
[in] cbEncryptedBlob
Ukuran, dalam byte, dari pesan yang dikodekan dan dienkripsi.
[out, optional] pbDecrypted
Penunjuk ke buffer yang menerima pesan yang didekripsi.
Untuk mengatur ukuran informasi ini untuk tujuan alokasi memori, parameter ini bisa NULL. Pesan yang didekripsi tidak akan dikembalikan jika parameter ini NULL. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.
[in, out, optional] pcbDecrypted
Penunjuk ke DWORD yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter pbDecrypted . Ketika fungsi kembali, variabel ini berisi ukuran, dalam byte, dari pesan yang didekripsi yang disalin ke pbDecrypted.
[out, optional] ppXchgCert
Penunjuk ke struktur CERT_CONTEXTsertifikat yang sesuai dengan kunci pertukaran privat yang diperlukan untuk mendekripsi pesan. Untuk menunjukkan bahwa fungsi tidak boleh mengembalikan konteks sertifikat yang digunakan untuk mendekripsi, atur parameter ini ke NULL.
Nilai kembali
Jika fungsi berhasil, fungsi mengembalikan bukan nol (TRUE).
Jika fungsi gagal, fungsi akan mengembalikan nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.
| Menampilkan kode | Deskripsi |
|---|---|
|
Jika buffer yang ditentukan oleh parameter pbDecrypted 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 pcbDecrypted. |
|
Jenis pengodean pesan dan sertifikat tidak valid. Saat ini hanya PKCS_7_ASN_ENCODING dan X509_ASN_ENCODING_TYPE yang didukung. cbSize tidak valid dalam *pDecryptPara. |
|
Bukan pesan kriptografi yang diselimuti . |
|
Pesan dienkripsi dengan menggunakan algoritma yang tidak diketahui atau tidak didukung. |
|
Tidak ditemukan sertifikat yang memiliki properti kunci privat untuk digunakan untuk mendekripsi. |
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
Ketika NULL diteruskan untuk pbDecrypted, dan pcbDecrypted bukan NULL, NULL dikembalikan untuk alamat yang diteruskan di ppXchgCert; jika tidak, pointer ke CERT_CONTEXT dikembalikan. Untuk pesan yang berhasil didekripsi, penunjuk ini ke CERT_CONTEXT menunjuk ke konteks sertifikat yang digunakan untuk mendekripsi pesan. Ini harus dikosongkan dengan memanggil CertFreeCertificateContext. Jika fungsi gagal, nilai di ppXchgCert diatur ke NULL.
Contoh
Untuk contoh yang menggunakan fungsi ini, lihat Contoh Program C: Menggunakan CryptEncryptMessage dan CryptDecryptMessage.
Persyaratan
| Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
| Target Platform | Windows |
| Header | wincrypt.h |
| Pustaka | Crypt32.lib |
| DLL | Crypt32.dll |