Fungsi CryptHashPublicKeyInfo (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 CryptHashPublicKeyInfo mengodekan informasi kunci publik dalam struktur CERT_PUBLIC_KEY_INFO dan menghitung hash byte yang dikodekan. Hash yang dibuat digunakan dengan fungsi pengidentifikasi kunci.

Sintaks

BOOL CryptHashPublicKeyInfo(
  [in]      HCRYPTPROV_LEGACY     hCryptProv,
  [in]      ALG_ID                Algid,
  [in]      DWORD                 dwFlags,
  [in]      DWORD                 dwCertEncodingType,
  [in]      PCERT_PUBLIC_KEY_INFO pInfo,
  [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] Algid

Struktur ALG_ID yang menentukan algoritma hash CryptoAPI untuk digunakan. Jika Algid adalah nol, algoritma hash default, MD5, digunakan.

[in] dwFlags

Nilai yang akan diteruskan ke CryptCreateHash.

[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] pInfo

Penunjuk ke struktur CERT_PUBLIC_KEY_INFO yang berisi informasi kunci publik yang akan dikodekan dan di-hash.

[out] pbComputedHash

Pointer ke buffer untuk menerima hash komputasi.

Untuk mengatur ukuran informasi ini untuk tujuan alokasi memori, parameter ini bisa NULL. 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 dapat 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, dalam variabel yang ditunjukkan oleh pcbComputedHash.
ERROR_FILE_NOT_FOUND
Tipe pengodean sertifikat tidak valid. Saat ini hanya X509_ASN_ENCODING yang 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

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll

Lihat juga

CryptHashCertificate

CryptHashToBesigned

Fungsi Manajemen Data