Bagikan melalui


Fungsi CryptEncryptMessage (wincrypt.h)

Fungsi CryptEncryptMessagemengenkripsi dan mengodekan pesan.

Sintaks

BOOL CryptEncryptMessage(
  [in]      PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
  [in]      DWORD                       cRecipientCert,
  [in]      PCCERT_CONTEXT []           rgpRecipientCert,
  [in]      const BYTE                  *pbToBeEncrypted,
  [in]      DWORD                       cbToBeEncrypted,
  [out]     BYTE                        *pbEncryptedBlob,
  [in, out] DWORD                       *pcbEncryptedBlob
);

Parameter

[in] pEncryptPara

Penunjuk ke struktur CRYPT_ENCRYPT_MESSAGE_PARA yang berisi parameter enkripsi.

Fungsi CryptEncryptMessage tidak mendukung OID SHA2, szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF , dan szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF.

[in] cRecipientCert

Jumlah elemen dalam array rgpRecipientCert .

[in] rgpRecipientCert

Array pointer ke struktur CERT_CONTEXT yang berisi sertifikat penerima pesan yang dimaksudkan.

[in] pbToBeEncrypted

Penunjuk ke buffer yang berisi pesan yang akan dienkripsi.

[in] cbToBeEncrypted

Ukuran, dalam byte, dari pesan yang akan dienkripsi.

[out] pbEncryptedBlob

Pointer ke BLOB yang berisi buffer yang menerima pesan terenkripsi dan dikodekan.

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

[in, out] pcbEncryptedBlob

Penunjuk ke DWORD yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter pbEncryptedBlob . Ketika fungsi kembali, variabel ini berisi ukuran, dalam byte, dari pesan terenkripsi dan dikodekan yang disalin ke pbEncryptedBlob.

Catatan Saat memproses data yang dikembalikan dalam buffer pbEncryptedBlob, aplikasi perlu 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, fungsi mengembalikan bukan nol (TRUE).

Jika fungsi gagal, fungsi mengembalikan nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Catatan Kesalahan dari panggilan ke CryptGenKey, CryptEncrypt, CryptImportKey, dan CryptExportKey dapat disebarkan ke fungsi ini.
 
Fungsi GetLastError mengembalikan kode kesalahan berikut paling sering.
Menampilkan kode Deskripsi
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbEncryptedBlob tidak cukup besar untuk menyimpan data yang dikembalikan, fungsi mengatur kode ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan, dalam byte, dalam variabel yang ditunjukkan oleh pcbEncryptedBlob.
E_INVALIDARG
Tipe pengodean pesan tidak valid. Saat ini hanya PKCS_7_ASN_ENCODING yang didukung. cbSize dalam *pEncryptPara tidak valid.
 

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.

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

Fungsi Pesan yang Disederhanakan