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.
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 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk