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