Bagikan melalui


Fungsi CryptSignAndEncryptMessage (wincrypt.h)

Fungsi CryptSignAndEncryptMessage membuat hash konten yang ditentukan, menandatangani hash, mengenkripsi konten, hash konten terenkripsi dan hash yang ditandatangani, lalu mengodekan konten terenkripsi dan hash yang ditandatangani. Hasilnya sama seperti jika hash pertama kali ditandatangani dan kemudian dienkripsi.

Sintaks

BOOL CryptSignAndEncryptMessage(
  [in]      PCRYPT_SIGN_MESSAGE_PARA    pSignPara,
  [in]      PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
  [in]      DWORD                       cRecipientCert,
  [in]      PCCERT_CONTEXT []           rgpRecipientCert,
  [in]      const BYTE                  *pbToBeSignedAndEncrypted,
  [in]      DWORD                       cbToBeSignedAndEncrypted,
  [out]     BYTE                        *pbSignedAndEncryptedBlob,
  [in, out] DWORD                       *pcbSignedAndEncryptedBlob
);

Parameter

[in] pSignPara

Penunjuk ke struktur CRYPT_SIGN_MESSAGE_PARA yang berisi parameter tanda tangan.

[in] pEncryptPara

Penunjuk ke struktur CRYPT_ENCRYPT_MESSAGE_PARA yang berisi parameter enkripsi.

[in] cRecipientCert

Jumlah elemen array dalam rgpRecipientCert.

[in] rgpRecipientCert

Array pointer ke struktur CERT_CONTEXT . Setiap struktur adalah sertifikat penerima pesan yang dimaksudkan.

[in] pbToBeSignedAndEncrypted

Penunjuk ke buffer yang berisi konten yang akan ditandatangani dan dienkripsi.

[in] cbToBeSignedAndEncrypted

Ukuran, dalam byte, dari buffer pbToBeSignedAndEncrypted .

[out] pbSignedAndEncryptedBlob

Penunjuk ke buffer untuk menerima pesan terenkripsi dan dikodekan.

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

[in, out] pcbSignedAndEncryptedBlob

Penunjuk ke DWORD yang menentukan ukuran, dalam byte, dari buffer yang diarahkan oleh pbSignedAndEncryptedBlob. Ketika fungsi kembali, variabel ini berisi ukuran, dalam byte, dari pesan yang ditandatangani dan dienkripsi yang disalin ke *pbSignedAndEncryptedBlob.

Catatan Saat memproses data yang dikembalikan, aplikasi harus menggunakan ukuran aktual data yang dikembalikan. Ukuran aktual bisa sedikit lebih kecil dari ukuran buffer yang ditentukan pada input. (Pada input, ukuran buffer biasanya ditentukan cukup besar untuk memastikan bahwa data output terbesar yang mungkin akan pas di buffer.) Pada output, variabel yang diacu oleh parameter ini diperbarui untuk mencerminkan ukuran aktual data yang disalin ke buffer.
 

Mengembalikan nilai

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
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbSignedAndEncryptedBlob tidak cukup besar untuk menyimpan data yang dikembalikan, fungsi mengatur kode ERROR_MORE_DATA, dan menyimpan ukuran buffer yang diperlukan, dalam byte, ke dalam variabel yang ditunjukkan oleh pcbSignedAndEncryptedBlob.
 
Catatan Kesalahan dari fungsi yang disebut CryptSignMessage dan CryptEncryptMessage mungkin disebarluaskan ke fungsi ini.
 

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

CryptDecryptAndVerifyMessageSignature

CryptSignMessage

Fungsi Pesan Yang Disederhanakan