Fungsi CryptSetHashParam (wincrypt.h)

Penting API ini tidak digunakan lagi. Perangkat lunak baru dan yang sudah ada harus mulai menggunakan Cryptography Next Generation API. Microsoft dapat menghapus API ini dalam rilis mendatang.
 
Fungsi CryptSetHashParam menyesuaikan operasi objek hash, termasuk menyiapkan konten hash awal dan memilih algoritma hash tertentu.

Sintaks

BOOL CryptSetHashParam(
  [in] HCRYPTHASH hHash,
  [in] DWORD      dwParam,
  [in] const BYTE *pbData,
  [in] DWORD      dwFlags
);

Parameter

[in] hHash

Handel ke objek hash untuk mengatur parameter.

[in] dwParam

Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
HP_HMAC_INFO.
Penunjuk ke struktur HMAC_INFO yang menentukan algoritma hash kriptografi dan string dalam dan luar yang akan digunakan.
HP_HASHVAL.
Array byte yang berisi nilai hash untuk ditempatkan langsung ke objek hash. Sebelum mengatur nilai ini, ukuran nilai hash harus ditentukan dengan menggunakan fungsi CryptGetHashParam untuk membaca nilai HP_HASHSIZE.

Beberapa penyedia layanan kriptografi (CSP) tidak mendukung kemampuan ini.

 
Catatan Beberapa jenis CSP dapat menambahkan nilai tambahan yang dapat diatur dengan menggunakan fungsi ini.
 

[in] pbData

Buffer data nilai. Tempatkan data nilai dalam buffer ini sebelum memanggil CryptSetHashParam. Bentuk data ini bervariasi, tergantung pada nomor nilai.

[in] dwFlags

Parameter ini dicadangkan untuk digunakan di masa mendatang dan harus diatur ke nol.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan TRUE.

Jika fungsi gagal, fungsi akan mengembalikan FALSE. Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Kode kesalahan yang diawali oleh "NTE" dihasilkan oleh CSP tertentu yang Anda gunakan. Beberapa kemungkinan kode kesalahan mengikuti.

Menampilkan kode Deskripsi
ERROR_INVALID_HANDLE
Salah satu parameter menentukan handel yang tidak valid.
ERROR_BUSY
Konteks CSP saat ini sedang digunakan oleh proses lain.
ERROR_INVALID_PARAMETER
Salah satu parameter berisi nilai yang tidak valid. Ini paling sering merupakan pointer yang tidak valid.
NTE_BAD_FLAGS
Parameter dwFlags nonzero atau buffer pbData berisi nilai yang tidak valid.
NTE_BAD_HASH
Objek hash yang ditentukan oleh parameter hHash tidak valid.
NTE_BAD_TYPE
Parameter dwParam menentukan nilai yang tidak diketahui.
NTE_BAD_UID
Konteks CSP yang ditentukan ketika kunci hKey dibuat tidak dapat ditemukan.
NTE_FAIL
Fungsi gagal dengan cara yang tidak terduga.

Keterangan

Terkadang, nilai hash yang telah dihasilkan di tempat lain harus ditandatangani. Ini dapat dilakukan dengan menggunakan urutan operasi berikut:

  1. Buat objek hash dengan menggunakan CryptCreateHash.
  2. Atur nilai HP_HASHVAL.
  3. Tanda tangani nilai hash dengan menggunakan CryptSignHash dan dapatkan blok tanda tangan digital.
  4. Hancurkan objek hash dengan menggunakan CryptDestroyHash.

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 wincrypt.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

CryptCreateHash

CryptDestroyHash

CryptGetHashParam

CryptSetKeyParam

CryptSignHash

HMAC_INFO

Fungsi Hash dan Tanda Tangan Digital