Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi BCryptVerifySignature memverifikasi bahwa tanda tangan yang ditentukan cocok dengan hash yang ditentukan.
Sintaksis
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-parameternya
[in] hKey
Handel kunci yang digunakan untuk mendekripsi tanda tangan. Ini harus merupakan 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 dituju parameter ini bergantung pada nilai parameter dwFlags . Parameter ini hanya digunakan dengan kunci asimetris dan harus NULL sebaliknya.
pPaddingInfo harus NULL untuk LMS dan XMSS karena tidak ada informasi tambahan yang diperlukan untuk menghasilkan tanda tangan selain kunci dan input.
[in] pbHash
Alamat buffer yang berisi hash data. Parameter cbHash berisi ukuran buffer ini.
[in] cbHash
Ukurannya, 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
Ukurannya, dalam byte, dari penyangga pbSignature . Fungsi BCryptSignHash digunakan untuk membuat tanda tangan.
[in] dwFlags
Sekumpulan bendera yang mengubah perilaku fungsi ini. Set bendera yang diizinkan tergantung pada jenis kunci yang ditentukan oleh parameter hKey .
dwFlags harus nol untuk LMS dan XMSS karena tidak ada informasi tambahan yang diperlukan untuk menghasilkan tanda tangan selain kunci dan input.
Jika kunci adalah kunci konten, 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_PQDSA | Gunakan skema padding PQ untuk ML-DSA atau SLH-DSA. Parameter pPaddingInfo adalah penunjuk ke struktur BCRYPT_PQDSA_PADDING_INFO . Nota: Ini harus diatur jika menggunakan varian ML-DSA pra-hash. |
| BCRYPT_PAD_PSS | Skema padding Probabilistic Signature Scheme (PSS) digunakan saat tanda tangan dibuat. Parameter pPaddingInfo adalah penunjuk ke struktur BCRYPT_PSS_PADDING_INFO . |
Mengembalikan nilai
Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.
Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini:
| Mengembalikan 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 bukan algoritma penandatanganan. |
Komentar
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 hashing 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.
Untuk ML-DSA dan SLH-DSA, pbHash dan cbHash tidak harus menjadi nilai hash dan dapat menjadi input panjang semena-mena.
Bergantung pada mode prosesor apa yang didukung penyedia, BCryptVerifySignature dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel dapat menjalankan baik di PASSIVE_LEVELIRQL atau IRQL DISPATCH_LEVEL. 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 penunjuk apa pun yang diteruskan ke fungsi BCryptVerifySignature harus merujuk ke memori yang tidak dipagasi (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] |
| Platform Target | Windows |
| Header | bcrypt.h |
| Perpustakaan | Bcrypt.lib |
| DLL | Bcrypt.dll |