Fungsi CryptMsgVerifyCountersignatureEncodedEx (wincrypt.h)
Fungsi CryptMsgVerifyCountersignatureEncodedEx memverifikasi bahwa parameter pbSignerInfoCounterSignature berisi hash terenkripsi dari bidang encryptedDigest dari struktur parameter pbSignerInfo . Penanda tangan dapat berupa struktur CERT_PUBLIC_KEY_INFO , konteks sertifikat, atau konteks rantai.
BOOL CryptMsgVerifyCountersignatureEncodedEx(
[in, optional] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] PBYTE pbSignerInfoCountersignature,
[in] DWORD cbSignerInfoCountersignature,
[in] DWORD dwSignerType,
[in] void *pvSigner,
DWORD dwFlags,
void *pvExtra
);
[in, optional] hCryptProv
Parameter ini tidak digunakan dan harus diatur ke NULL.
Windows Server 2003 dan Windows XP: NULL atau handel penyedia kriptografi untuk digunakan untuk hash bidang encryptedDigest dari pbSignerInfo. Jenis data parameter ini adalah HCRYPTPROV.
Kecuali ada alasan kuat untuk meneruskan penyedia kriptografi tertentu di hCryptProv, teruskan NULL untuk menyebabkan penyedia RSA atau DSS default digunakan.
[in] dwEncodingType
Jenis pengodean yang digunakan. Saat ini, hanya X509_ASN_ENCODING dan PKCS_7_ASN_ENCODING yang digunakan; namun, jenis pengodean tambahan dapat ditambahkan di masa mendatang. Untuk salah satu jenis pengodean saat ini, gunakan:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pbSignerInfo
Penunjuk ke BLOB yang dikodekan yang berisi penanda tangan konten pesan yang akan ditandatangani.
[in] cbSignerInfo
Jumlah, dalam byte, dari BLOB yang dikodekan untuk penanda tangan konten.
[in] pbSignerInfoCountersignature
Penunjuk ke BLOB yang dikodekan yang berisi informasi countersigner.
[in] cbSignerInfoCountersignature
Hitungan, dalam byte, dari BLOB yang dikodekan untuk penghitung pesan.
[in] dwSignerType
Struktur yang berisi informasi penanda tangan. Tabel berikut ini memperlihatkan nilai yang telah ditentukan sebelumnya dan struktur yang ditunjukkan.
Nilai | Makna |
---|---|
|
pvSigner adalah penunjuk ke struktur CERT_PUBLIC_KEY_INFO . |
|
pvSigner adalah penunjuk ke struktur CERT_CONTEXT . |
|
pvSigner adalah penunjuk ke struktur CERT_CHAIN_CONTEXT . |
[in] pvSigner
Penunjuk ke struktur CERT_PUBLIC_KEY_INFO , konteks sertifikat, atau konteks rantai tergantung pada nilai dwSignerType.
dwFlags
Bendera yang mengubah perilaku fungsi. Ini bisa nol atau nilai berikut.
Nilai | Makna |
---|---|
|
Melakukan pemeriksaan tanda tangan yang kuat setelah verifikasi tanda tangan berhasil. Atur parameter pvExtra untuk menunjuk ke struktur CERT_STRONG_SIGN_PARA yang berisi parameter yang diperlukan untuk memeriksa kekuatan tanda tangan..
Windows 8 dan Windows Server 2012: Dukungan untuk bendera ini dimulai. |
pvExtra
Jika Anda mengatur parameter dwFlags ke CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG, atur parameter ini (pvExtra) untuk menunjuk ke struktur CERT_STRONG_SIGN_PARA yang berisi parameter yang digunakan untuk memeriksa kekuatan tanda tangan.
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.
Kode kesalahan berikut paling sering dikembalikan oleh fungsi GetLastError .
Menampilkan kode | Deskripsi |
---|---|
|
Pesan tidak berisi atribut terautentikasi yang diharapkan. |
|
Nilai hash tidak benar. |
|
Pesan tidak dikodekan seperti yang diharapkan. |
|
Algoritma kriptografi tidak diketahui. |
|
Satu atau beberapa argumen tidak valid. |
|
Kehabisan memori. |
Kesalahan yang disebarkan dari fungsi berikut mungkin dikembalikan.
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.Verifikasi countersigner dilakukan menggunakan struktur PKCS #7 SIGNERINFO . Tanda tangan harus berisi hash terenkripsi dari bidang encryptedDigest dari pbSignerInfo.
Penerbit dan nomor seri countersigner harus cocok dengan informasi countersigner dari pbSignerInfoCountersignature. Satu-satunya bidang yang direferensikan dari pciCountersigner adalah SerialNumber, Issuer, dan SubjectPublicKeyInfo. SubjectPublicKeyInfo digunakan untuk mengakses kunci umum yang kemudian digunakan untuk mengenkripsi hash dari pciCountersigner sehingga bandingkan dengan hash dari pbSignerInfo.
Untuk contoh yang menggunakan fungsi ini, lihat Contoh Program C: Pengodean dan Pendekodean Pesan CounterSigned.
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 |