Fungsi MakeSignature (sspi.h)
Fungsi MakeSignature menghasilkan checksum kriptografi pesan, dan juga menyertakan informasi urutan untuk mencegah kehilangan atau penyisipan pesan. MakeSignature memungkinkan aplikasi untuk memilih antara beberapa algoritma kriptografi, jika didukung oleh mekanisme yang dipilih. Fungsi MakeSignature menggunakan konteks keamanan yang direferensikan oleh handel konteks.
Fungsi ini tidak didukung oleh penyedia dukungan keamanan (SSP) Schannel.
KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY MakeSignature(
[in] PCtxtHandle phContext,
[in] unsigned long fQOP,
[in, out] PSecBufferDesc pMessage,
[in] unsigned long MessageSeqNo
);
[in] phContext
Handel ke konteks keamanan yang akan digunakan untuk menandatangani pesan.
[in] fQOP
Bendera khusus paket yang menunjukkan kualitas perlindungan. Paket keamanan dapat menggunakan parameter ini untuk mengaktifkan pemilihan algoritma kriptografi.
Saat menggunakan Digest SSP, parameter ini harus diatur ke nol.
[in, out] pMessage
Penunjuk ke struktur SecBufferDesc . Pada input, struktur mereferensikan satu atau beberapa struktur SecBuffer yang berisi pesan yang akan ditandatangani. Fungsi ini tidak memproses buffer dengan atribut SECBUFFER_READONLY_WITH_CHECKSUM.
Struktur SecBufferDesc juga mereferensikan struktur SecBuffer jenis SECBUFFER_TOKEN yang menerima tanda tangan.
Ketika Digest SSP digunakan sebagai protokol autentikasi HTTP, buffer harus dikonfigurasi sebagai berikut.
Jenis buffer #/buffer | Makna |
---|---|
|
Kosong. |
|
Metode. |
|
URL. |
|
HEntity. Untuk informasi selengkapnya, lihat Buffer Input untuk Respons Tantangan Hash. |
|
Kosong. Menerima tanda tangan. |
Ketika Digest SSP digunakan sebagai mekanisme SASL, buffer harus dikonfigurasi sebagai berikut.
Jenis buffer #/buffer | Makna |
---|---|
|
Kosong. Menerima tanda tangan. Buffer ini harus cukup besar untuk menahan tanda tangan terbesar yang mungkin. Tentukan ukuran yang diperlukan dengan memanggil fungsi QueryContextAttributes (Umum) dan menentukan SECPKG_ATTR_SIZES. Periksa anggota struktur SecPkgContext_SizescbMaxSignature yang dikembalikan. |
|
Pesan yang akan ditandatangani. |
|
Kosong. |
[in] MessageSeqNo
Nomor urut yang ditetapkan aplikasi transportasi ke pesan. Jika aplikasi transportasi tidak mempertahankan nomor urut, parameter ini adalah nol.
Saat menggunakan Digest SSP, parameter ini harus diatur ke nol. Digest SSP mengelola penomoran urutan secara internal.
Jika fungsi berhasil, fungsi akan mengembalikan SEC_E_OK.
Jika fungsi gagal, fungsi mengembalikan salah satu kode kesalahan berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Pihak jarak jauh memerlukan urutan jabat tangan baru atau aplikasi baru saja memulai pematian. Kembali ke perulangan negosiasi dan panggil AcceptSecurityContext (Umum) atau InitializeSecurityContext (Umum) lagi. Buffer input kosong diteruskan dalam panggilan pertama. |
|
Handel konteks yang ditentukan oleh phContext tidak valid. |
|
pMessage tidak berisi buffer SECBUFFER_TOKEN yang valid atau berisi terlalu sedikit buffer. |
|
Jumlah nonce di luar urutan. |
|
Konteks keamanan (phContext) harus divalidasi ulang. |
|
Jumlah nonce bukan numerik. |
|
Kualitas perlindungan yang dinegosiasikan antara klien dan server tidak termasuk pemeriksaan integritas . |
Fungsi MakeSignature menghasilkan tanda tangan yang didasarkan pada pesan dan kunci sesi untuk konteks.
Fungsi VerifySignature memverifikasi pesan yang ditandatangani oleh fungsi MakeSignature .
Jika aplikasi transportasi membuat konteks keamanan untuk mendukung deteksi urutan dan pemanggil menyediakan nomor urut, fungsi menyertakan informasi ini dalam tanda tangan. Ini melindungi dari balasan, penyisipan, dan penekanan pesan. Paket keamanan menggabungkan nomor urut yang diturunkan dari aplikasi transportasi.
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 |