Fungsi DecryptMessage (Kerberos)
Fungsi DecryptMessage (Kerberos) mendekripsi pesan. Beberapa paket tidak mengenkripsi dan mendekripsi pesan melainkan melakukan dan memeriksa hash integritas.
Catatan
EncryptMessage (Kerberos) dan DecryptMessage (Kerberos) dapat dipanggil pada saat yang sama dari dua utas yang berbeda dalam satu konteks antarmuka penyedia dukungan keamanan (SSPI) jika satu utas mengenkripsi dan yang lainnya mendekripsi. Jika lebih dari satu utas mengenkripsi, atau lebih dari satu utas mendekripsi, setiap utas harus mendapatkan konteks unik.
Sintaks
SECURITY_STATUS SEC_Entry DecryptMessage(
_In_ PCtxtHandle phContext,
_Inout_ PSecBufferDesc pMessage,
_In_ ULONG MessageSeqNo,
_Out_ PULONG pfQOP
);
Parameter
phContext [in]
Handel ke konteks keamanan yang akan digunakan untuk mendekripsi pesan.
pMessage [masuk, keluar]
Penunjuk ke struktur SecBufferDesc . Pada input, struktur mereferensikan satu atau beberapa struktur SecBuffer yang mungkin berjenis SECBUFFER_DATA. Buffer berisi pesan terenkripsi. Pesan terenkripsi didekripsi di tempatnya, menimpa konten asli buffernya.
MessageSeqNo [in]
Nomor urut yang diharapkan oleh aplikasi transportasi, jika ada. Jika aplikasi transportasi tidak mempertahankan nomor urut, parameter ini harus diatur ke nol.
pfQOP [out]
Penunjuk ke variabel jenis ULONG yang menerima bendera khusus paket yang menunjukkan kualitas perlindungan.
Parameter ini bisa menjadi bendera berikut.
Nilai | Makna |
---|---|
SECQOP_WRAP_NO_ENCRYPT | pesannya tidak dienkripsi, tetapi header atau trailer diproduksi. |
Catatan
KERB_WRAP_NO_ENCRYPT memiliki nilai yang sama dan makna yang sama.
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 |
---|---|
SEC_E_INCOMPLETE_MESSAGE | Data dalam buffer input tidak lengkap. Aplikasi perlu membaca lebih banyak data dari server dan memanggil DecryptMessage (Kerberos) lagi. |
SEC_E_OUT_OF_SEQUENCE | Pesan tidak diterima dalam urutan yang benar. |
Keterangan
Terkadang aplikasi akan membaca data dari pihak jarak jauh, mencoba mendekripsinya dengan menggunakan DecryptMessage (Kerberos), dan menemukan bahwa DecryptMessage (Kerberos) berhasil tetapi buffer output kosong. Ini adalah perilaku normal, dan aplikasi harus dapat menanganinya.
Untuk informasi tentang interoperabilitas dengan GSSAPI, lihat Interoperabilitas SSPI/Kerberos dengan GSSAPI.
Windows XP: Fungsi ini juga dikenal sebagai UnsealMessage. Aplikasi sekarang harus menggunakan DecryptMessage (Kerberos) saja.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Header | Sspi.h (termasuk Security.h) |
Pustaka | Secur32.lib |
DLL | Secur32.dll |