estructura de CMSG_CNG_CONTENT_DECRYPT_INFO (wincrypt.h)

La estructura de CMSG_CNG_CONTENT_DECRYPT_INFO contiene toda la información pertinente que se pasa entre las funciones instalables CryptMsgControl e identificador de objeto (OID) para la importación y descifrado de una CLAVE de cifrado de contenido (CEK) de Cryptography API: Next Generation (CNG). La función CryptMsgControl usa esta estructura para llamar a las siguientes funciones:

Sintaxis

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;

Miembros

cbSize

Contiene el tamaño, en bytes, de esta estructura.

ContentEncryptionAlgorithm

Estructura CRYPT_ALGORITHM_IDENTIFIER que especifica el algoritmo utilizado para cifrar el contenido del mensaje y los parámetros asociados.

pfnAlloc

Puntero a una función instalable que se usa para asignar memoria para cualquier miembro actualizado.

pfnFree

Puntero a una función instalable usada para liberar memoria asignada por pfnAlloc.

hNCryptKey

Identificador de la clave privada CNG que se va a usar para el descifrado de la CEK contenida en el parámetro pKeyTransDecryptPara o el parámetro pKeyAgreeDecryptPara de la función PFN_CMSG_CNG_IMPORT_KEY_TRANS . Las funciones de devolución de llamada deben usar esta clave en lugar de la contenida en la estructura DecryptPara porque esa estructura podría contener un identificador HCRYPTPROV convertido.

pbContentEncryptKey

Con el miembro hNCryptKey , la función PFN_CMSG_CNG_IMPORT_KEY_TRANS debe actualizar este miembro mediante el descifrado de la CEK en el parámetro pKeyTransDecryptPara o la función PFN_CMSG_CNG_IMPORT_KEY_AGREE debe actualizar este miembro mediante el descifrado encryptedKey en el parámetro pKeyAgreeDecryptPara . La memoria de este miembro debe asignarse mediante el miembro pfnAlloc . La función PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY usará estos bytes como secreto para generar el miembro hCNGContentEncryptKey . Incluso para un error, debe liberar y cero cualquier memoria asignada mediante el miembro pfnFree .

cbContentEncryptKey

La función PFN_CMSG_CNG_IMPORT_KEY_TRANS o PFN_CMSG_CNG_IMPORT_KEY_AGREE debe actualizar este miembro con el tamaño, en bytes, del miembro pbContentEncryptKey anterior.

hCNGContentEncryptKey

La función PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY debe actualizar este miembro con el BCRYPT_KEY_HANDLE generado que se usará para el descifrado de contenido. Incluso para un error, debe liberar este identificador mediante la función BCryptDestroyKey .

pbCNGContentEncryptKeyObject

La función PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY debe actualizar este miembro con la memoria asignada por el miembro pfnAlloc que se va a asociar al miembro hCNGContentEncryptKey . Incluso para un error, debe liberar y cero cualquier memoria asignada mediante el miembro pfnFree .

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado wincrypt.h