Bagikan melalui


Fungsi CryptGetHashParam (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 CryptGetHashParam mengambil data yang mengatur operasi objek hash. Nilai hash aktual dapat diambil dengan menggunakan fungsi ini.

Sintaks

BOOL CryptGetHashParam(
  [in]      HCRYPTHASH hHash,
  [in]      DWORD      dwParam,
  [out]     BYTE       *pbData,
  [in, out] DWORD      *pdwDataLen,
  [in]      DWORD      dwFlags
);

Parameter

[in] hHash

Menangani objek hash yang akan dikueri.

[in] dwParam

Jenis kueri. Parameter ini dapat diatur ke salah satu kueri berikut.

Nilai Makna
HP_ALGID
Algoritma hash
ALG_ID yang menunjukkan algoritma yang ditentukan saat objek hash dibuat. Untuk daftar algoritma hash, lihat CryptCreateHash.
HP_HASHSIZE
Ukuran nilai hash
Nilai DWORD menunjukkan jumlah byte dalam nilai hash. Nilai ini akan bervariasi tergantung pada algoritma hash. Aplikasi harus mengambil nilai ini tepat sebelum nilai HP_HASHVAL sehingga jumlah memori yang benar dapat dialokasikan.
HP_HASHVAL
Nilai hash
Nilai hash atau hash pesan untuk objek hash yang ditentukan oleh hHash. Nilai ini dihasilkan berdasarkan data yang disediakan ke objek hash sebelumnya melalui fungsi CryptHashData dan CryptHashSessionKey .

Fungsi CryptGetHashParam menyelesaikan hash. Setelah CryptGetHashParam dipanggil, tidak ada lagi data yang dapat ditambahkan ke hash. Panggilan tambahan ke CryptHashData atau CryptHashSessionKey gagal. Setelah aplikasi selesai dengan hash, CryptDestroyHash harus dipanggil untuk menghancurkan objek hash.

 
Catatan CSP dapat menambahkan lebih banyak nilai yang dapat dikueri fungsi ini.
 

[out] pbData

Penunjuk ke buffer yang menerima data nilai yang ditentukan. Bentuk data ini bervariasi, tergantung pada nomor nilai.

Parameter ini bisa NULL untuk menentukan ukuran memori yang diperlukan.

[in, out] pdwDataLen

Penunjuk ke nilai DWORD yang menentukan ukuran, dalam byte, dari buffer pbData . Saat fungsi kembali, nilai DWORD berisi jumlah byte yang disimpan dalam buffer.

Jika pbData adalah NULL, atur nilai pdwDataLen ke nol.

Catatan Saat memproses data yang dikembalikan dalam buffer, aplikasi harus menggunakan ukuran aktual data yang dikembalikan. Ukuran aktual bisa sedikit lebih kecil dari ukuran buffer yang ditentukan pada input. (Pada input, ukuran buffer biasanya ditentukan cukup besar untuk memastikan bahwa data output terbesar yang mungkin cocok di buffer.) Pada output, variabel yang diacu oleh parameter ini diperbarui untuk mencerminkan ukuran aktual data yang disalin ke buffer.
 

[in] dwFlags

Dicadangkan untuk digunakan di masa mendatang dan harus nol.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah 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_INVALID_PARAMETER
Salah satu parameter berisi nilai yang tidak valid. Ini paling sering merupakan pointer yang tidak valid.
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbData tidak cukup besar untuk menyimpan data yang dikembalikan, fungsi mengatur kode ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan, dalam byte, dalam variabel yang ditunjukkan oleh pdwDataLen.
NTE_BAD_FLAGS
Parameter dwFlags bukan nol.
NTE_BAD_HASH
Objek hash yang ditentukan oleh parameter hHash tidak valid.
NTE_BAD_TYPE
Parameter dwParam menentukan nomor nilai yang tidak diketahui.
NTE_BAD_UID
Konteks CSP yang ditentukan ketika hash dibuat tidak dapat ditemukan.

Persyaratan

   
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

ALG_ID

CryptCreateHash

CryptDestroyHash

CryptGetKeyParam

CryptHashData

CryptHashSessionKey

CryptSetHashParam

Fungsi Hash dan Tanda Tangan Digital