Bagikan melalui


Fungsi CryptVerifyMessageSignatureWithKey (wincrypt.h)

Fungsi CryptVerifyMessageSignatureWithKey memverifikasi tanda tangan pesan yang ditandatangani dengan menggunakan informasi kunci publik tertentu.

Sintaks

BOOL CryptVerifyMessageSignatureWithKey(
  [in]      PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara,
  [in]      PCERT_PUBLIC_KEY_INFO          pPublicKeyInfo,
  [in]      const BYTE                     *pbSignedBlob,
  [in]      DWORD                          cbSignedBlob,
  [out]     BYTE                           *pbDecoded,
  [in, out] DWORD                          *pcbDecoded
);

Parameter

[in] pVerifyPara

Penunjuk ke struktur CRYPT_KEY_VERIFY_MESSAGE_PARA yang berisi parameter verifikasi.

[in] pPublicKeyInfo

Penunjuk ke struktur CERT_PUBLIC_KEY_INFO yang berisi kunci umum yang digunakan untuk memverifikasi pesan yang ditandatangani. Jika NULL, tanda tangan tidak diverifikasi.

[in] pbSignedBlob

Penunjuk ke buffer yang berisi pesan yang ditandatangani.

[in] cbSignedBlob

Ukuran, dalam byte, dari buffer pesan yang ditandatangani.

[out] pbDecoded

Penunjuk ke buffer untuk menerima pesan yang didekodekan.

Parameter ini dapat berupa NULL jika pesan yang didekodekan tidak diperlukan untuk pemrosesan tambahan atau untuk mengatur ukuran pesan untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out] pcbDecoded

Penunjuk ke nilai DWORD yang menentukan ukuran, dalam byte, dari buffer pbDecoded . Ketika fungsi kembali, DWORD ini berisi ukuran, dalam byte, dari pesan yang didekodekan. Pesan yang didekodekan tidak akan dikembalikan jika parameter ini NULL.

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.

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

Tabel berikut menunjukkan kode kesalahan yang paling umum dikembalikan oleh fungsi GetLastError .

Menampilkan kode Deskripsi
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbDecoded 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 pcbDecoded.
E_INVALIDARG
Jenis pengodean pesan dan sertifikat tidak valid. Saat ini hanya PKCS_7_ASN_ENCODING dan X509_ASN_ENCODING_TYPE yang didukung. cbSize tidak valid dalam *pVerifyPara.
CRYPT_E_UNEXPECTED_MSG_TYPE
Bukan pesan kriptografi yang ditandatangani.
CRYPT_E_NO_SIGNER
Pesan tidak memiliki penanda tangan atau penanda tangan untuk dwSignerIndex yang ditentukan.
NTE_BAD_ALGID
Pesan di-hash dan ditandatangani dengan menggunakan algoritma yang tidak diketahui atau tidak didukung.
NTE_BAD_SIGNATURE
Tanda tangan pesan tidak diverifikasi.

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