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
CRYPT_E_AUTH_ATTR_MISSING
Pesan tidak berisi atribut terautentikasi yang diharapkan.
CRYPT_E_HASH_VALUE
Nilai hash tidak benar.
CRYPT_E_UNEXPECTED_ENCODING
Pesan tidak dikodekan seperti yang diharapkan.
CRYPT_E_UNKNOWN_ALGO
Algoritma kriptografi tidak diketahui.
E_INVALIDARG
Satu atau beberapa argumen tidak valid.
E_OUTOFMEMORY
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

Lihat juga

CryptMsgCountersign

CryptMsgCountersignEncoded

Fungsi Pesan tingkat rendah

Fungsi Pesan yang Disederhanakan