CMSG_CNG_CONTENT_DECRYPT_INFO structure (wincrypt.h)
La structure CMSG_CNG_CONTENT_DECRYPT_INFO contient toutes les informations pertinentes passées entre CryptMsgControl et les fonctions installables de l’identificateur d’objet (OID) pour l’importation et le déchiffrement d’une clé de chiffrement de contenu (CEK) de nouvelle génération (CNG). La fonction CryptMsgControl utilise cette structure pour appeler les fonctions suivantes :
Syntaxe
typedef struct _CMSG_CNG_CONTENT_DECRYPT_INFO {
DWORD cbSize;
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
PFN_CMSG_ALLOC pfnAlloc;
PFN_CMSG_FREE pfnFree;
NCRYPT_KEY_HANDLE hNCryptKey;
BYTE *pbContentEncryptKey;
DWORD cbContentEncryptKey;
BCRYPT_KEY_HANDLE hCNGContentEncryptKey;
BYTE *pbCNGContentEncryptKeyObject;
} CMSG_CNG_CONTENT_DECRYPT_INFO, *PCMSG_CNG_CONTENT_DECRYPT_INFO;
Membres
cbSize
Contient la taille, en octets, de cette structure.
ContentEncryptionAlgorithm
Structure CRYPT_ALGORITHM_IDENTIFIER qui spécifie l’algorithme utilisé pour chiffrer le contenu du message et tous les paramètres associés.
pfnAlloc
Pointeur vers une fonction installable utilisée pour allouer de la mémoire à tout membre mis à jour.
pfnFree
Pointeur vers une fonction installable utilisée pour libérer la mémoire allouée par pfnAlloc.
hNCryptKey
Handle de la clé privée CNG à utiliser pour déchiffrer la clé CEK contenue dans le paramètre pKeyTransDecryptPara ou le paramètre pKeyAgreeDecryptPara de la fonction PFN_CMSG_CNG_IMPORT_KEY_TRANS . Les fonctions de rappel doivent utiliser cette clé au lieu de celle contenue dans la structure DecryptPara , car cette structure peut contenir un handle HCRYPTPROV converti.
pbContentEncryptKey
À l’aide du membre hNCryptKey , la fonction PFN_CMSG_CNG_IMPORT_KEY_TRANS doit mettre à jour ce membre en déchiffrant la clé CEK dans le paramètre pKeyTransDecryptPara ou la fonction PFN_CMSG_CNG_IMPORT_KEY_AGREE doit mettre à jour ce membre en déchiffrant encryptedKey dans le paramètre pKeyAgreeDecryptPara . La mémoire de ce membre doit être allouée à l’aide du membre pfnAlloc . La fonction PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY utilise ces octets comme secret pour générer le membre hCNGContentEncryptKey . Même pour une erreur, vous devez libérer et zéro toute mémoire allouée à l’aide du membre pfnFree .
cbContentEncryptKey
La fonction PFN_CMSG_CNG_IMPORT_KEY_TRANS ou PFN_CMSG_CNG_IMPORT_KEY_AGREE doit mettre à jour ce membre avec la taille, en octets, du membre pbContentEncryptKey ci-dessus.
hCNGContentEncryptKey
La fonction PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY doit mettre à jour ce membre avec le BCRYPT_KEY_HANDLE généré à utiliser pour le déchiffrement du contenu. Même en cas d’erreur, vous devez libérer ce handle à l’aide de la fonction BCryptDestroyKey .
pbCNGContentEncryptKeyObject
La fonction PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY doit mettre à jour ce membre avec la mémoire allouée par le membre pfnAlloc à associer au membre hCNGContentEncryptKey . Même pour une erreur, vous devez libérer et zéro toute mémoire allouée à l’aide du membre pfnFree .
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
En-tête | wincrypt.h |