estrutura CMSG_CNG_CONTENT_DECRYPT_INFO (wincrypt.h)
A estrutura CMSG_CNG_CONTENT_DECRYPT_INFO contém todas as informações relevantes passadas entre o CryptMsgControl e as funções instaláveis do OID ( identificador de objeto ) para a importação e descriptografia de uma CEK (chave de criptografia de conteúdo) de CNG (Cryptography API: Next Generation). A função CryptMsgControl usa essa estrutura para chamar as seguintes funções:
Sintaxe
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;
Membros
cbSize
Contém o tamanho, em bytes, dessa estrutura.
ContentEncryptionAlgorithm
Uma estrutura CRYPT_ALGORITHM_IDENTIFIER que especifica o algoritmo usado para criptografar o conteúdo da mensagem e quaisquer parâmetros associados.
pfnAlloc
Um ponteiro para uma função instalável usada para alocar memória para qualquer membro atualizado.
pfnFree
Um ponteiro para uma função instalável usada para liberar memória alocada por pfnAlloc.
hNCryptKey
Um identificador para a chave privada CNG a ser usada para descriptografia do CEK contido no parâmetro pKeyTransDecryptPara ou no parâmetro pKeyAgreeDecryptPara da função PFN_CMSG_CNG_IMPORT_KEY_TRANS . As funções de retorno de chamada devem usar essa chave em vez daquela contida na estrutura DecryptPara porque essa estrutura pode conter um identificador HCRYPTPROV convertido.
pbContentEncryptKey
Usando o membro hNCryptKey , a função PFN_CMSG_CNG_IMPORT_KEY_TRANS deve atualizar esse membro descriptografando o CEK no parâmetro pKeyTransDecryptPara ou a função PFN_CMSG_CNG_IMPORT_KEY_AGREE deve atualizar esse membro descriptografando EncryptedKey no parâmetro pKeyAgreeDecryptPara . A memória desse membro deve ser alocada usando o membro pfnAlloc . A função PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY usará esses bytes como o segredo para gerar o membro hCNGContentEncryptKey . Mesmo para um erro, você deve liberar e zero qualquer memória alocada usando o membro pfnFree .
cbContentEncryptKey
A função PFN_CMSG_CNG_IMPORT_KEY_TRANS ou PFN_CMSG_CNG_IMPORT_KEY_AGREE deve atualizar esse membro com o tamanho, em bytes, do membro pbContentEncryptKey acima.
hCNGContentEncryptKey
A função PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY deve atualizar esse membro com o BCRYPT_KEY_HANDLE gerado a ser usado para descriptografia de conteúdo. Mesmo para um erro, você deve liberar esse identificador usando a função BCryptDestroyKey .
pbCNGContentEncryptKeyObject
A função PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY deve atualizar esse membro com a memória alocada pelo membro pfnAlloc a ser associada ao membro hCNGContentEncryptKey . Mesmo para um erro, você deve liberar e zero qualquer memória alocada usando o membro pfnFree .
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | wincrypt.h |