Bagikan melalui


Fungsi BCryptVerifySignature (bcrypt.h)

Fungsi BCryptVerifySignature memverifikasi bahwa tanda tangan yang ditentukan cocok dengan hash yang ditentukan.

Sintaks

NTSTATUS BCryptVerifySignature(
  [in]           BCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PUCHAR            pbHash,
  [in]           ULONG             cbHash,
  [in]           PUCHAR            pbSignature,
  [in]           ULONG             cbSignature,
  [in]           ULONG             dwFlags
);

Parameter

[in] hKey

Handel kunci yang digunakan untuk mendekripsi tanda tangan. Ini harus berupa kunci yang identik atau bagian kunci publik dari pasangan kunci yang digunakan untuk menandatangani data dengan fungsi BCryptSignHash .

[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] pbHash

Alamat buffer yang berisi hash data. Parameter cbHash berisi ukuran buffer ini.

[in] cbHash

Ukuran, dalam byte, dari buffer pbHash .

[in] pbSignature

Alamat buffer yang berisi hash data yang ditandatangani. Fungsi BCryptSignHash digunakan untuk membuat tanda tangan. Parameter cbSignature berisi ukuran buffer ini.

[in] cbSignature

Ukuran, dalam byte, dari penyangga pbSignature . Fungsi BCryptSignHash digunakan untuk membuat tanda tangan.

[in] dwFlags

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

Jika kuncinya adalah kunci simetris, parameter ini tidak digunakan dan harus nol.

Jika kuncinya adalah kunci asimetris, ini bisa menjadi salah satu nilai berikut.

Nilai Makna
BCRYPT_PAD_PKCS1
Skema padding PKCS1 digunakan saat tanda tangan dibuat. Parameter pPaddingInfo adalah penunjuk ke struktur BCRYPT_PKCS1_PADDING_INFO .
BCRYPT_PAD_PSS
Skema padding Probabilistic Signature Scheme (PSS) digunakan saat tanda tangan dibuat. 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_SIGNATURE
Tanda tangan tidak diverifikasi.
NTE_NO_MEMORY
Terjadi kegagalan alokasi memori.
STATUS_INVALID_PARAMETER
Salah satu parameter yang disediakan tidak valid.
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.

Keterangan

Fungsi ini menghitung tanda tangan dengan kunci yang disediakan lalu membandingkan nilai tanda tangan terhitung dengan nilai tanda tangan yang ditentukan.

Untuk menggunakan fungsi ini, Anda harus hash data dengan menggunakan algoritma hash yang sama yang digunakan untuk membuat nilai hash yang ditandatangani. Jika berlaku, Anda juga harus menentukan skema padding yang sama yang ditentukan saat tanda tangan dibuat.

Tergantung pada mode prosesor apa yang didukung penyedia, BCryptVerifySignature 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 menggunakan bendera BCRYPT_PROV_DISPATCH , dan setiap penunjuk yang diteruskan ke fungsi BCryptVerifySignature harus mengacu pada memori yang tidak di-patahkan (atau terkunci).

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

BCryptSignHash