Bagikan melalui


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.

Sintaks

KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY MakeSignature(
  [in]      PCtxtHandle    phContext,
  [in]      unsigned long  fQOP,
  [in, out] PSecBufferDesc pMessage,
  [in]      unsigned long  MessageSeqNo
);

Parameter

[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
0
SECBUFFER_TOKEN
Kosong.
1
SECBUFFER_PKG_PARAMS
Metode.
2
SECBUFFER_PKG_PARAMS
URL.
3
SECBUFFER_PKG_PARAMS
HEntity. Untuk informasi selengkapnya, lihat Buffer Input untuk Respons Tantangan Hash.
4
SECBUFFER_PADDING
Kosong. Menerima tanda tangan.
 

Ketika Digest SSP digunakan sebagai mekanisme SASL, buffer harus dikonfigurasi sebagai berikut.

Jenis buffer #/buffer Makna
0
SECBUFFER_TOKEN
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.
1
SECBUFFER_DATA
Pesan yang akan ditandatangani.
2
SECBUFFER_PADDING
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.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan SEC_E_OK.

Jika fungsi gagal, fungsi mengembalikan salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
SEC_I_RENEGOTIATE
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.
SEC_E_INVALID_HANDLE
Handel konteks yang ditentukan oleh phContext tidak valid.
SEC_E_INVALID_TOKEN
pMessage tidak berisi buffer SECBUFFER_TOKEN yang valid atau berisi terlalu sedikit buffer.
SEC_E_OUT_OF_SEQUENCE
Jumlah nonce di luar urutan.
SEC_E_NO_AUTHENTICATING_AUTHORITY
Konteks keamanan (phContext) harus divalidasi ulang.
STATUS_INVALID_PARAMETER
Jumlah nonce bukan numerik.
SEC_E_QOP_NOT_SUPPORTED
Kualitas perlindungan yang dinegosiasikan antara klien dan server tidak termasuk pemeriksaan integritas .

Keterangan

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

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

Lihat juga

Fungsi SSPI

SecBuffer

SecBufferDesc

VerifySignature