Fungsi CryptMsgEncodeAndSignCTL (wincrypt.h)

Fungsi CryptMsgEncodeAndSignCTL mengodekan CTL dan membuat pesan bertanda tangan yang berisi CTL yang dikodekan.

Fungsi ini pertama-tama mengodekan CTL yang diarahkan oleh pCtlInfo dan kemudian memanggil CryptMsgSignCTL untuk menandatangani pesan yang dikodekan.

Sintaks

BOOL CryptMsgEncodeAndSignCTL(
  [in]      DWORD                    dwMsgEncodingType,
  [in]      PCTL_INFO                pCtlInfo,
  [in]      PCMSG_SIGNED_ENCODE_INFO pSignInfo,
  [in]      DWORD                    dwFlags,
  [out]     BYTE                     *pbEncoded,
  [in, out] DWORD                    *pcbEncoded
);

Parameter

[in] dwMsgEncodingType

Menentukan jenis pengodean yang digunakan. Selalu dapat diterima untuk menentukan jenis pengodean sertifikat dan pesan dengan menggabungkannya dengan operasi bitwise-OR seperti yang ditunjukkan dalam contoh berikut:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Jenis pengodean yang saat ini ditentukan adalah:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pCtlInfo

Penunjuk ke struktur CTL_INFO yang berisi CTL yang akan dikodekan dan ditandatangani.

[in] pSignInfo

Penunjuk ke struktur CMSG_SIGNED_ENCODE_INFO yang berisi array struktur CMSG_SIGNER_ENCODE_INFO .

Pesan dapat dikodekan tanpa penanda tangan jika anggota cbSize struktur diatur ke ukuran struktur dan semua anggota lain diatur ke nol.

[in] dwFlags

CMSG_ENCODE_SORTED_CTL_FLAG diatur jika entri CTL akan diurutkan sebelum pengodean. Bendera ini diatur jika fungsi CertFindSubjectInSortedCTL atau CertEnumSubjectInSortedCTL akan dipanggil.

CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG diatur jika CMSG_ENCODE_SORTED_CTL_FLAG diatur, dan pengidentifikasi untuk TrustedSubjects adalah hash, seperti MD5 atau SHA1.

Jika CMS_PKCS7 ditentukan, dwFlags dapat diatur ke CMSG_CMS_ENCAPSULATED_CTL_FLAG untuk mengodekan pesan V3 SignedData yang kompatibel dengan CMS.

[out] pbEncoded

Penunjuk ke buffer yang menerima pesan yang dikodekan dan ditandatangani dibuat.

Parameter ini dapat berupa NULL untuk mengatur ukuran informasi ini untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out] pcbEncoded

Penunjuk ke DWORD yang menentukan ukuran, dalam byte, dari buffer pbEncoded . Saat fungsi kembali, DWORD berisi jumlah byte yang disimpan atau disimpan dalam buffer.

Nilai kembali

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

Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE). Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Kesalahan dapat disebarluaskan dari panggilan ke CryptMsgOpenToEncode dan CryptMsgUpdate.

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

Lihat juga

CMSG_SIGNED_ENCODE_INFO

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

CryptMsgOpenToEncode

CryptMsgSignCTL

Fungsi Verifikasi Menggunakan CTL