Bagikan melalui


Fungsi CryptHashMessage (wincrypt.h)

Fungsi CryptHashMessage membuat hash pesan.

Sintaks

BOOL CryptHashMessage(
  [in]                PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]                BOOL                     fDetachedHash,
  [in]                DWORD                    cToBeHashed,
  [in]                const BYTE * []          rgpbToBeHashed,
  [in]                DWORD []                 rgcbToBeHashed,
  [out]               BYTE                     *pbHashedBlob,
  [in, out]           DWORD                    *pcbHashedBlob,
  [out, optional]     BYTE                     *pbComputedHash,
  [in, out, optional] DWORD                    *pcbComputedHash
);

Parameter

[in] pHashPara

Penunjuk ke struktur CRYPT_HASH_MESSAGE_PARA yang berisi parameter hash.

[in] fDetachedHash

Jika parameter ini diatur ke TRUE, hanya pbComputedHash yang dikodekan dalam pbHashedBlob. Jika tidak, rgpbToBeHashed dan pbComputedHash dikodekan.

[in] cToBeHashed

Jumlah elemen array dalam rgpbToBeHashed dan rgcbToBeHashed. Parameter ini hanya boleh satu kecuali fDetachedHash diatur ke TRUE.

[in] rgpbToBeHashed

Array pointer ke buffer yang berisi konten yang akan di-hash.

[in] rgcbToBeHashed

Array ukuran, dalam byte, dari buffer yang diacu oleh rgpbToBeHashed.

[out] pbHashedBlob

Penunjuk ke buffer untuk menerima pesan hash yang dikodekan untuk transmisi.

Parameter ini dapat berupa NULL jika pesan yang di-hash tidak diperlukan untuk pemrosesan tambahan atau untuk mengatur ukuran pesan yang di-hash untuk tujuan alokasi memori. Pesan hash tidak akan dikembalikan jika parameter ini NULL. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out] pcbHashedBlob

Penunjuk ke DWORD yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter pbHashedBlob . Ketika fungsi kembali, variabel ini berisi ukuran, dalam byte, dari pesan yang didekripsi yang disalin ke pbHashedBlob. Parameter ini harus berupa alamat DWORD dan bukan NULL atau panjang buffer tidak akan dikembalikan.

Catatan Saat memproses data yang dikembalikan, 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 akan pas di buffer. Pada output, variabel yang diacu oleh parameter ini diperbarui untuk mencerminkan ukuran aktual data yang disalin ke buffer.
 

[out, optional] pbComputedHash

Penunjuk ke buffer untuk menerima nilai hash yang baru dibuat. Parameter ini dapat berupa NULL jika hash yang baru dibuat tidak diperlukan untuk pemrosesan tambahan, atau untuk mengatur ukuran hash untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out, optional] pcbComputedHash

Penunjuk ke DWORD yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter pbComputedHash . Ketika fungsi kembali, DWORD ini berisi ukuran, dalam byte, dari hash yang baru dibuat yang disalin ke pbComputedHash.

Catatan Saat memproses data yang dikembalikan, 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 akan pas di buffer. Pada output, variabel yang diacu oleh parameter ini diperbarui untuk mencerminkan ukuran aktual data yang disalin ke buffer.
 

Mengembalikan nilai

Jika fungsi berhasil, fungsi mengembalikan bukan nol (TRUE).

Jika fungsi gagal, fungsi mengembalikan nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Catatan Kesalahan dari fungsi yang disebut CryptCreateHash, CryptHashData, dan CryptGetHashParam mungkin disebarluaskan ke fungsi ini.
 
Fungsi GetLastError mengembalikan kode kesalahan berikut paling sering.
Menampilkan kode Deskripsi
E_INVALIDARG
Tipe pengodean pesan tidak valid. Saat ini hanya PKCS_7_ASN_ENCODING yang didukung. cbSize dalam *pHashPara tidak valid.
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbHashedBlob tidak cukup besar untuk menyimpan data yang dikembalikan, fungsi mengatur kode ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan, dalam byte, ke dalam variabel yang ditunjukkan oleh pbHashedBlob.
 

Jika fungsi gagal, GetLastError dapat mengembalikan kesalahan pengodean/pendekodean Abstract Syntax Notation One (ASN.1). Untuk informasi tentang kesalahan ini, lihat Nilai Pengembalian Pengodean/Pendekodean ASN.1.

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 Crypt32.lib
DLL Crypt32.dll

Lihat juga

CryptVerifyDetachedMessageHash

CryptVerifyMessageHash

Fungsi Pesan yang Disederhanakan