PFN_CMSG_EXPORT_KEY_AGREE fonction de rappel (wincrypt.h)
La fonction de rappel PFN_CMSG_EXPORT_KEY_AGREE chiffre et exporte la clé de chiffrement de contenu pour un destinataire de contrat de clé d’un message enveloppé. PFN_CMSG_EXPORT_KEY_AGREE pouvez être installé à l’aide d’un identificateur d’objetCryptoAPI (OID). Cette fonction est appelée par la fonction CryptMsgOpenToEncode lorsque son paramètre dwMsgType est défini sur CMSG_ENVELOPED.
Syntaxe
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
)
{...}
Paramètres
[in] pContentEncryptInfo
Pointeur vers une structure CMSG_CONTENT_ENCRYPT_INFO qui contient la clé de chiffrement de contenu.
[in] pKeyAgreeEncodeInfo
Pointeur vers une structure de CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO qui spécifie la clé utilisée pour chiffrer la clé de chiffrement de contenu.
[in, out] pKeyAgreeEncryptInfo
Pointeur vers une structure de CMSG_KEY_AGREE_ENCRYPT_INFO qui contient la clé de chiffrement de contenu chiffrée.
[in] dwFlags
Cette valeur n'est pas utilisée. Définissez-le sur zéro.
pvReserved
Ce paramètre est réservé et doit être NULL.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).
Si la fonction échoue, la valeur de retour est zéro (FALSE). Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
Pour chaque clé de destinataire, la fonction PFN_CMSG_EXPORT_KEY_AGREE doit mettre à jour le membre EncryptedKey de la structure CMSG_KEY_AGREE_KEY_ENCRYPT_INFO référencée par le membre rgpKeyAgreeKeyEncryptInfo de la structure CMSG_KEY_AGREE_ENCRYPT_INFO pointée par le paramètre pKeyAgreeEncryptInfo . Cette fonction doit utiliser les membres pfnAlloc et pfnFree de la structure CMSG_CONTENT_ENCRYPT_INFO pointée par le paramètre pContentEncryptInfo pour gérer la mémoire pour toutes les valeurs mises à jour.
Si, lors de l’entrée, le membre dwEncryptFlags de la structure CMSG_CONTENT_ENCRYPT_INFO pointée par le membre pContentEncryptInfo est défini sur CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG, le membre PublicKey éphémère de la structure CERT_PUBLIC_KEY_INFO référencé par le membre OriginatorPublicKeyInfo de la structure CMSG_KEY_AGREE_ENCRYPT_INFO pointée par pKeygreeEncryptInfo le paramètre doit être rempli de zéros pour toujours obtenir la même longueur maximale encodée.
Vous pouvez utiliser les fonctions de support OID pour déployer cette fonction de rappel. Wincrypt.h définit les constantes suivantes à cet effet.
Vous devez définir différentes fonctions de rappel pour les clés CAPI1 et les clés CNG (Cryptography API: Next Generation). Les deux fonctions ont la même signature, mais utilisent des OID différents. La fonction appelée dépend de la valeur du membre fCNG de la structure CMSG_CONTENT_ENCRYPT_INFO pointée par le paramètre pContentEncryptInfo . Le tableau suivant montre la relation entre la fonction de rappel et la valeur du membre fCNG .
Valeur fCNG | Constant | Définition |
---|---|---|
FALSE | CMSG_OID_EXPORT_KEY_AGREE_FUNC ou CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC | « CryptMsgDllExportKeyAgree » |
TRUE | CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC | « CryptMsgDllCNGExportKeyAgree » |
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour