Bagikan melalui


Fungsi CryptHashToBeSigned (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 CryptHashToBeSigned menghitung hash konten yang dikodekan dari sertifikat yang ditandatangani dan dikodekan. Hash hanya dilakukan pada konten yang dikodekan "untuk ditandatangani" dan tanda tangannya.

Sintaks

BOOL CryptHashToBeSigned(
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD             dwCertEncodingType,
  [in]      const BYTE        *pbEncoded,
  [in]      DWORD             cbEncoded,
  [out]     BYTE              *pbComputedHash,
  [in, out] DWORD             *pcbComputedHash
);

Parameter

[in] hCryptProv

Parameter ini tidak digunakan dan harus diatur ke NULL.

Windows Server 2003 dan Windows XP: Handel penyedia layanan kriptografi (CSP) untuk digunakan untuk menghitung hash. Jenis data parameter ini adalah HCRYPTPROV.

Kecuali ada alasan kuat untuk melewati penyedia kriptografi tertentu di hCryptProv, nol diteruskan. Melewati nol menyebabkan penyedia RSA atau Digital Signature Standard (DSS) default diperoleh sebelum melakukan operasi hash, verifikasi tanda tangan, atau enkripsi penerima.

[in] dwCertEncodingType

Menentukan jenis pengodean yang digunakan. Selalu dapat diterima untuk menentukan jenispengodean sertifikat dan pesan dengan menggabungkannya dengan operasi bitwise-OR seperti yang ditunjukkan dalam contoh berikut:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Jenis pengodean yang saat ini ditentukan adalah:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbEncoded

Alamat buffer yang berisi konten yang akan di-hash. Ini adalah bentuk yang dikodekan dari CERT_SIGNED_CONTENT_INFO.

[in] cbEncoded

Ukuran, dalam byte, dari buffer.

[out] pbComputedHash

Pointer ke buffer untuk menerima hash komputasi.

Parameter ini dapat berupa NULL untuk mengatur ukuran informasi ini untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out] pcbComputedHash

Penunjuk ke DWORD yang berisi ukuran, dalam byte, dari buffer yang diacu oleh parameter pbComputedHash . Saat fungsi kembali, DWORD berisi jumlah byte yang disimpan dalam buffer.

Catatan Saat memproses data yang dikembalikan dalam buffer, aplikasi perlu 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, CryptGetHashParam, dan CryptHashData mungkin disebarluaskan ke fungsi ini. Fungsi ini memiliki kode kesalahan berikut.
 
Menampilkan kode Deskripsi
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbComputedHash 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 pcbComputedHash.
ERROR_FILE_NOT_FOUND
Tipe pengodean sertifikat tidak valid. Saat ini hanya X509_ASN_ENCODING yang didukung.
NTE_BAD_ALGID
Pengidentifikasi objek (OID) dari algoritma tanda tangan tidak memetakan ke algoritma hash yang diketahui atau didukung.
 

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

   
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

CryptHashCertificate

CryptHashPublicKeyInfo

Fungsi Manajemen Data