Bagikan melalui


Fungsi BCryptSignHash (bcrypt.h)

Fungsi BCryptSignHash membuat tanda tangan nilai hash.

Sintaks

NTSTATUS BCryptSignHash(
  [in]           BCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PUCHAR            pbInput,
  [in]           ULONG             cbInput,
  [out]          PUCHAR            pbOutput,
  [in]           ULONG             cbOutput,
  [out]          ULONG             *pcbResult,
  [in]           ULONG             dwFlags
);

Parameter

[in] hKey

Handel kunci yang digunakan untuk menandatangani hash.

[in, optional] pPaddingInfo

Penunjuk ke struktur yang berisi informasi padding. Jenis struktur aktual yang menunjuk parameter ini tergantung pada nilai parameter dwFlags . Parameter ini hanya digunakan dengan kunci asimetris dan harus NULL sebaliknya.

[in] pbInput

Penunjuk ke buffer yang berisi nilai hash untuk ditandatangani. Parameter cbInput berisi ukuran buffer ini.

[in] cbInput

Jumlah byte dalam buffer pbInput yang akan ditandatangani.

[out] pbOutput

Alamat buffer untuk menerima tanda tangan yang dihasilkan oleh fungsi ini. Parameter cbOutput berisi ukuran buffer ini.

Jika parameter ini NULL, fungsi ini akan menghitung ukuran yang diperlukan untuk tanda tangan dan mengembalikan ukuran di lokasi yang ditunjukkan oleh parameter pcbResult .

[in] cbOutput

Ukuran, dalam byte, dari buffer pbOutput . Parameter ini diabaikan jika parameter pbOutput adalah NULL.

[out] pcbResult

Penunjuk ke variabel ULONG yang menerima jumlah byte yang disalin ke buffer pbOutput .

Jika pbOutputNULL, ini menerima ukuran, dalam byte, diperlukan untuk tanda tangan.

[in] dwFlags

Sekumpulan bendera yang mengubah perilaku fungsi ini. Kumpulan bendera yang diizinkan tergantung pada jenis kunci yang ditentukan oleh parameter hKey .

Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
BCRYPT_PAD_PKCS1
Gunakan skema padding PKCS1. Parameter pPaddingInfo adalah penunjuk ke struktur BCRYPT_PKCS1_PADDING_INFO .
BCRYPT_PAD_PSS
Gunakan skema padding Probabilistic Signature Scheme (PSS). Parameter pPaddingInfo adalah penunjuk ke struktur BCRYPT_PSS_PADDING_INFO .

Nilai kembali

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Fungsi berhasil.
STATUS_INVALID_HANDLE
Handel kunci yang ditentukan oleh parameter hKey tidak valid.
STATUS_NOT_SUPPORTED
Penyedia algoritma yang digunakan untuk membuat handel kunci yang ditentukan oleh parameter hKey bukanlah algoritma penandatanganan.
STATUS_NO_MEMORY
Terjadi kegagalan alokasi memori.
STATUS_BUFFER_TOO_SMALL
Ukuran memori yang ditentukan oleh parameter cbOutput tidak cukup besar untuk menahan tanda tangan.

Keterangan

Fungsi ini akan mengenkripsi nilai hash dengan kunci yang ditentukan untuk membuat tanda tangan.

Untuk memverifikasi bahwa tanda tangan valid, panggil fungsi BCryptVerifySignature dengan kunci yang identik dan hash identik dari data asli.

Bergantung pada mode prosesor apa yang didukung penyedia, BCryptSignHash dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel dapat mengeksekusi baik di PASSIVE_LEVEL IRQL atau DISPATCH_LEVEL IRQL. Jika tingkat IRQL saat ini DISPATCH_LEVEL, handel yang disediakan dalam parameter hKey harus berasal dari handel algoritma yang dikembalikan oleh penyedia yang dibuka dengan bendera BCRYPT_PROV_DISPATCH , dan penunjuk apa pun yang diteruskan ke fungsi BCryptSignHash harus mengacu pada memori yang tidak di-patahkan (atau dikunci).

Untuk memanggil fungsi ini dalam mode kernel, gunakan Cng.lib, yang merupakan bagian dari Driver Development Kit (DDK). Windows Server 2008 dan Windows Vista: Untuk memanggil fungsi ini dalam mode kernel, gunakan Ksecdd.lib.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header bcrypt.h
Pustaka Bcrypt.lib
DLL Bcrypt.dll

Lihat juga

BCryptVerifySignature