Fungsi NCryptSignHash (ncrypt.h)

Fungsi NCryptSignHash membuat tanda tangan nilai hash.

Sintaks

SECURITY_STATUS NCryptSignHash(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PBYTE             pbHashValue,
  [in]           DWORD             cbHashValue,
  [out]          PBYTE             pbSignature,
  [in]           DWORD             cbSignature,
  [out]          DWORD             *pcbResult,
  [in]           DWORD             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 dituju parameter ini tergantung pada nilai parameter dwFlags . Parameter ini hanya digunakan dengan kunci asimetris dan harus NULL jika tidak.

[in] pbHashValue

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

[in] cbHashValue

Jumlah byte dalam buffer pbHashValue untuk ditandatangani.

[out] pbSignature

Alamat buffer untuk menerima tanda tangan yang dihasilkan oleh fungsi ini. Parameter cbSignature 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] cbSignature

Ukuran, dalam byte, dari penyangga pbSignature . Parameter ini diabaikan jika parameter pbSignature adalah NULL.

[out] pcbResult

Penunjuk ke variabel DWORD yang menerima jumlah byte yang disalin ke buffer pbSignature .

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

[in] dwFlags

Bendera yang mengubah perilaku fungsi. Set bendera yang diizinkan tergantung pada jenis kunci yang ditentukan oleh parameter hKey .

Jika kuncinya adalah kunci konten, parameter ini tidak digunakan dan harus diatur ke nol.

Jika kuncinya adalah kunci asimetris, 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 .
NCRYPT_SILENT_FLAG
Meminta agar penyedia layanan utama (KSP) tidak menampilkan antarmuka pengguna apa pun. Jika penyedia harus menampilkan UI untuk beroperasi, panggilan gagal dan KSP harus mengatur kode kesalahan NTE_SILENT_CONTEXT sebagai kesalahan terakhir.

Nilai kembali

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

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

Menampilkan kode Deskripsi
ERROR_SUCCESS
Fungsi berhasil.
NTE_BAD_ALGID
Kunci yang diwakili oleh parameter hKey tidak mendukung penandatanganan.
NTE_BAD_FLAGS
Parameter dwFlags berisi nilai yang tidak valid.
NTE_INVALID_HANDLE
Parameter hKey tidak valid.
NTE_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.
NTE_NO_MEMORY
Terjadi kegagalan alokasi memori.

Keterangan

Layanan tidak boleh memanggil fungsi ini dari Fungsi StartService-nya. Jika layanan memanggil fungsi ini dari fungsi StartService-nya, kebuntuan dapat terjadi, dan layanan mungkin berhenti merespons.

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 ncrypt.h
Pustaka Ncrypt.lib
DLL Ncrypt.dll