Fungsi CryptMsgVerifyCountersignatureEncoded (wincrypt.h)
Fungsi CryptMsgVerifyCountersignatureEncoded memverifikasi countersignature dalam hal struktur SignerInfo (sebagaimana didefinisikan oleh PKCS #7).
Sintaks
BOOL CryptMsgVerifyCountersignatureEncoded(
[in] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] PBYTE pbSignerInfoCountersignature,
[in] DWORD cbSignerInfoCountersignature,
[in] PCERT_INFO pciCountersigner
);
Parameter
[in] 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
Menentukan 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
Hitung, dalam byte, dari BLOB yang dikodekan untuk penanda tangan konten.
[in] pbSignerInfoCountersignature
Penunjuk ke BLOB yang dikodekan yang berisi informasi countersigner.
[in] cbSignerInfoCountersignature
Hitung, dalam byte, dari BLOB yang dikodekan untuk penghitung pesan.
[in] pciCountersigner
Pointer ke CERT_INFO yang menyertakan penerbit dan nomor seri countersigner. Untuk informasi selengkapnya, lihat Keterangan.
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.
Tabel berikut mencantumkan kode kesalahan yang paling umum 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.Keterangan
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.
Contoh
Untuk contoh yang menggunakan fungsi ini, lihat Contoh Program C: Pengodean dan Pendekodean Pesan CounterSigned.
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 |