PFN_CMSG_EXPORT_KEY_AGREE fungsi panggilan balik (wincrypt.h)

Fungsi panggilan balik PFN_CMSG_EXPORT_KEY_AGREE mengenkripsi dan mengekspor kunci enkripsi konten untuk penerima perjanjian kunci pesan yang diselimuti. PFN_CMSG_EXPORT_KEY_AGREE dapat diinstal dengan menggunakan pengidentifikasi objekCryptoAPI (OID). Fungsi ini dipanggil oleh fungsi CryptMsgOpenToEncode ketika parameter dwMsgType diatur ke CMSG_ENVELOPED.

Sintaks

PFN_CMSG_EXPORT_KEY_AGREE PfnCmsgExportKeyAgree;

BOOL PfnCmsgExportKeyAgree(
  [in]      PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
  [in]      PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgreeEncodeInfo,
  [in, out] PCMSG_KEY_AGREE_ENCRYPT_INFO pKeyAgreeEncryptInfo,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Parameter

[in] pContentEncryptInfo

Penunjuk ke struktur CMSG_CONTENT_ENCRYPT_INFO yang berisi kunci enkripsi konten.

[in] pKeyAgreeEncodeInfo

Penunjuk ke struktur CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO yang menentukan kunci yang digunakan untuk mengenkripsi kunci enkripsi konten.

[in, out] pKeyAgreeEncryptInfo

Penunjuk ke struktur CMSG_KEY_AGREE_ENCRYPT_INFO yang berisi kunci enkripsi konten terenkripsi.

[in] dwFlags

Nilai ini tidak digunakan. Atur ke nol.

pvReserved

Parameter ini dicadangkan dan harus NULL.

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.

Keterangan

Untuk setiap kunci penerima, fungsi PFN_CMSG_EXPORT_KEY_AGREE harus memperbarui anggota EncryptedKey dari struktur CMSG_KEY_AGREE_KEY_ENCRYPT_INFO yang dimaksud oleh anggota rgpKeyAgreeKeyEncryptInfo dari struktur CMSG_KEY_AGREE_ENCRYPT_INFO yang ditunjukkan oleh parameter pKeyAgreeEncryptInfo . Fungsi ini harus menggunakan anggota pfnAlloc dan pfnFree dari struktur CMSG_CONTENT_ENCRYPT_INFO yang ditunjukkan oleh parameter pContentEncryptInfo untuk mengelola memori untuk nilai apa pun yang diperbaruinya.

Jika, setelah masuk, anggota dwEncryptFlags dari struktur CMSG_CONTENT_ENCRYPT_INFO yang diarahkan oleh anggota pContentEncryptInfo diatur ke CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG, anggota PublicKey sementara dari struktur CERT_PUBLIC_KEY_INFO yang disebut oleh anggota OriginatorPublicKeyInfo dari struktur CMSG_KEY_AGREE_ENCRYPT_INFO yang ditunjukkan oleh pKeyAgreeEncryptInfo parameter harus diisi dengan nol untuk selalu mendapatkan panjang maksimum yang dikodekan yang sama.

Catatan Panjang kunci publik Y sementara yang dihasilkan dapat bervariasi tergantung pada jumlah bit nol di depannya.

 

Anda dapat menggunakan Fungsi Dukungan OID untuk menyebarkan fungsi panggilan balik ini. Wincrypt.h mendefinisikan konstanta berikut untuk tujuan ini.

Anda harus menentukan fungsi panggilan balik yang berbeda untuk kunci CAPI1 dan kunci API Kriptografi: Generasi Berikutnya (CNG). Kedua fungsi memiliki tanda tangan yang sama tetapi menggunakan OID yang berbeda. Fungsi mana yang disebut tergantung pada nilai anggota fCNG dari struktur CMSG_CONTENT_ENCRYPT_INFO yang ditunjukkan oleh parameter pContentEncryptInfo . Tabel berikut ini memperlihatkan hubungan antara fungsi panggilan balik dan nilai anggota fCNG .

Nilai fCNG Terus-menerus Definisi
FALSE CMSG_OID_EXPORT_KEY_AGREE_FUNC atau CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC "CryptMsgDllExportKeyAgree"
TRUE CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC "CryptMsgDllCNGExportKeyAgree"

Persyaratan

   
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