Fungsi DecryptMessage (sspi.h)
Fungsi DecryptMessage (Digest) mendekripsi pesan. Beberapa paket tidak mengenkripsi dan mendekripsi pesan melainkan melakukan dan memeriksa hash integritas.
Penyedia dukungan keamanan (SSP) Digest menyediakan kerahasiaan enkripsi dan dekripsi untuk pesan yang dipertukarkan antara klien dan server hanya sebagai mekanisme SASL.
Sintaks
SECURITY_STATUS SEC_ENTRY DecryptMessage(
[in] PCtxtHandle phContext,
[in, out] PSecBufferDesc pMessage,
[in] unsigned long MessageSeqNo,
[out] unsigned long *pfQOP
);
Parameter
[in] phContext
Handel ke konteks keamanan yang akan digunakan untuk mendekripsi pesan.
[in, out] pMessage
Penunjuk ke struktur SecBufferDesc . Pada input, struktur mereferensikan satu atau beberapa struktur SecBuffer . Setidaknya salah satunya harus berjenis SECBUFFER_DATA. Buffer tersebut berisi pesan terenkripsi. Pesan terenkripsi didekripsi di tempatnya, menimpa konten asli buffernya.
Saat menggunakan Digest SSP, pada input, struktur mereferensikan satu atau beberapa struktur SecBuffer . Salah satunya harus berjenis SECBUFFER_DATA atau SECBUFFER_STREAM, dan harus berisi pesan terenkripsi.
[in] MessageSeqNo
Nomor urut yang diharapkan oleh aplikasi transportasi, jika ada. Jika aplikasi transportasi tidak mempertahankan nomor urut, parameter ini harus diatur ke nol.
Saat menggunakan Digest SSP, parameter ini harus diatur ke nol. Digest SSP mengelola penomoran urutan secara internal.
[out] pfQOP
Penunjuk ke variabel jenis ULONG yang menerima bendera khusus paket yang menunjukkan kualitas perlindungan.
Parameter ini bisa menjadi salah satu bendera berikut.
Nilai | Makna |
---|---|
|
Pesan tidak dienkripsi, tetapi header atau trailer diproduksi.
Catatan KERB_WRAP_NO_ENCRYPT memiliki nilai yang sama dan makna yang sama.
|
|
Saat menggunakan Digest SSP, gunakan bendera ini saat konteks keamanan diatur untuk memverifikasi tanda tangan saja. Untuk informasi selengkapnya, lihat Kualitas Perlindungan. |
Mengembalikan nilai
Jika fungsi memverifikasi bahwa pesan diterima dalam urutan yang benar, fungsi mengembalikan SEC_E_OK.
Jika fungsi gagal mendekripsi pesan, fungsi mengembalikan salah satu kode kesalahan berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Buffer pesan terlalu kecil. Digunakan dengan Digest SSP. |
|
Cipher yang dipilih untuk konteks keamanan tidak didukung. Digunakan dengan Digest SSP. |
|
Data dalam buffer input tidak lengkap. Aplikasi perlu membaca lebih banyak data dari server dan memanggil DecryptMessage (Digest) lagi. |
|
Handel konteks yang tidak valid ditentukan dalam parameter phContext . Digunakan dengan Digest SSP. |
|
Pesan telah diubah. Digunakan dengan Digest SSP. |
|
Pesan tidak diterima dalam urutan yang benar. |
|
Kerahasiaan maupun integritas tidak didukung oleh konteks keamanan. Digunakan dengan Digest SSP. |
Keterangan
Terkadang aplikasi akan membaca data dari pihak jarak jauh, mencoba mendekripsinya dengan menggunakan DecryptMessage (Digest), dan menemukan bahwa DecryptMessage (Digest) berhasil tetapi buffer output kosong. Ini adalah perilaku normal, dan aplikasi harus dapat menanganinya.
Windows XP: Fungsi ini juga dikenal sebagai UnsealMessage. Aplikasi sekarang harus menggunakan DecryptMessage (Digest) saja.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | sspi.h (termasuk Security.h) |
Pustaka | Secur32.lib |
DLL | Secur32.dll |