Fungsi CryptVerifyDetachedMessageSignature (wincrypt.h)

Fungsi CryptVerifyDetachedMessageSignature memverifikasi pesan bertanda tangan yang berisi tanda tangan atau tanda tangan yang dilepas.

Sintaks

BOOL CryptVerifyDetachedMessageSignature(
  [in]            PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
  [in]            DWORD                      dwSignerIndex,
  [in]            const BYTE                 *pbDetachedSignBlob,
  [in]            DWORD                      cbDetachedSignBlob,
  [in]            DWORD                      cToBeSigned,
  [in]            const BYTE * []            rgpbToBeSigned,
  [in]            DWORD []                   rgcbToBeSigned,
  [out, optional] PCCERT_CONTEXT             *ppSignerCert
);

Parameter

[in] pVerifyPara

Penunjuk ke struktur CRYPT_VERIFY_MESSAGE_PARA yang berisi parameter verifikasi.

[in] dwSignerIndex

Indeks tanda tangan yang akan diverifikasi. Pesan mungkin memiliki beberapa penanda tangan dan fungsi ini dapat dipanggil berulang kali, mengubah dwSignerIndex untuk memverifikasi tanda tangan lainnya. Jika fungsi mengembalikan FALSE, dan GetLastError mengembalikan CRYPT_E_NO_SIGNER, panggilan sebelumnya menerima penanda tangan terakhir pesan.

[in] pbDetachedSignBlob

Penunjuk ke BLOB yang berisi tanda tangan pesan yang dikodekan.

[in] cbDetachedSignBlob

Ukuran, dalam byte, dari tanda tangan yang dilepas.

[in] cToBeSigned

Jumlah elemen array dalam rgpbToBeSigned dan rgcbToBeSigned.

[in] rgpbToBeSigned

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

[in] rgcbToBeSigned

Array ukuran, dalam byte, untuk buffer konten yang diarahkan ke rgpbToBeSigned.

[out, optional] ppSignerCert

Penunjuk ke penunjuk ke struktur CERT_CONTEXT sertifikat penanda tangan. Setelah Anda selesai menggunakan konteks sertifikat, bebaskan dengan memanggil fungsi CertFreeCertificateContext . Penunjuk ke struktur CERT_CONTEXT tidak akan dikembalikan jika parameter ini NULL.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol (TRUE).

Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE).

Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Berikut ini mencantumkan kode kesalahan yang paling umum dikembalikan oleh fungsi GetLastError .

Menampilkan kode Deskripsi
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.
 
Catatan Kesalahan dari fungsi yang disebut CryptCreateHash, CryptHashData, CryptVerifySignature, dan CryptImportKey mungkin disebarluaskan ke fungsi ini.

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

CryptVerifyMessageSignature

Fungsi Pesan yang Disederhanakan