PFN_CMSG_CNG_IMPORT_KEY_TRANS fonction de rappel (wincrypt.h)

La fonction de rappel PFN_CMSG_CNG_IMPORT_KEY_TRANS importe et déchiffre une clé de chiffrement de contenu (CEK) destinée à un destinataire de transport de clé. PFN_CMSG_CNG_IMPORT_KEY_TRANS pouvez être installés à l’aide d’une API de chiffrement : identificateur d’objet (OID) nouvelle génération (CNG).

Syntaxe

PFN_CMSG_CNG_IMPORT_KEY_TRANS PfnCmsgCngImportKeyTrans;

BOOL PfnCmsgCngImportKeyTrans(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Paramètres

[in, out] pCNGContentDecryptInfo

Un pointeur vers une structure CMSG_CNG_CONTENT_DECRYPT_INFO à mettre à jour avec les octets CEK déchiffrés. Ce paramètre contient la clé utilisée pour déchiffrer la clé CEK. Le paramètre pKeyTransDecryptPara suivant contient les octets CEK à déchiffrer.

[in] pKeyTransDecryptPara

Pointeur vers une structure de CMSG_CTRL_KEY_TRANS_DECRYPT_PARA qui contient les informations de transport de clé transmises à la fonction CryptMsgControl dans les cas CMSG_CTRL_DECRYPT ou CMSG_CTRL_KEY_TRANS_DECRYPT . Pour le cas CMSG_CTRL_DECRYPT , CryptMsgControl convertit la structure CMSG_CTRL_DECRYPT_PARA en structure de CMSG_CTRL_KEY_TRANS_DECRYPT_PARA .

Le membre EncryptedKey du membre pKeyTrans contient les octets CEK à déchiffrer. Étant donné qu’une structure CMSG_CTRL_KEY_TRANS_DECRYPT_PARA peut contenir un choix HCRYPTPROV , son membre hNCryptKey ne doit pas être utilisé pour déchiffrer EncryptedKey. Au lieu de cela, vous devez utiliser le hNCryptKey spécifié dans le paramètre pCNGContentDecryptInfo .

Cette fonction ne doit pas mettre à jour les membres de la structure CMSG_CTRL_KEY_TRANS_DECRYPT_PARA .

[in] dwFlags

Ce paramètre est réservé. Définissez-le sur zéro.

pvReserved

Ce paramètre est réservé. Définissez-le sur 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.

Si cette fonction de rappel ne prend pas en charge l’algorithme de chiffrement de clé, elle doit retourner FALSE et appeler SetLastError avec ERROR_NOT_SUPPORTED.

Remarques

La fonction CryptMsgControl appelle cette fonction pour les opérations suivantes spécifiées par le paramètre dwCtrlType :

CMSG_CTRL_DECRYPTCMSG_CTRL_KEY_TRANS_DECRYPT Vous pouvez utiliser les fonctions de support OID pour déployer cette fonction de rappel. Wincrypt.h définit la constante suivante à cet effet.

Constant Définition
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC « CryptMsgDllCNGImportKeyTrans »
 

Exemples

Pour obtenir un exemple de déploiement d’une fonction de rappel installable OID, consultez Extension de la fonctionnalité CryptoAPI.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincrypt.h

Voir aussi

Décodage de données enveloppes