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 |