Compartilhar via


PFN_CMSG_CNG_IMPORT_KEY_TRANS função de retorno de chamada (wincrypt.h)

A função de retorno de chamada PFN_CMSG_CNG_IMPORT_KEY_TRANS importa e descriptografa uma CEK (chave de criptografia de conteúdo) destinada a um destinatário de transporte de chave. PFN_CMSG_CNG_IMPORT_KEY_TRANS pode ser instalado usando uma API de Criptografia: OID ( identificador de objeto de próxima geração) (CNG).

Sintaxe

PFN_CMSG_CNG_IMPORT_KEY_TRANS PfnCmsgCngImportKeyTrans;

BOOL PfnCmsgCngImportKeyTrans(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Parâmetros

[in, out] pCNGContentDecryptInfo

Um ponteiro para uma estrutura CMSG_CNG_CONTENT_DECRYPT_INFO a ser atualizada com os bytes CEK descriptografados. Esse parâmetro contém a chave usada para descriptografar o CEK. O parâmetro pKeyTransDecryptPara a seguir contém os bytes CEK a serem descriptografados.

[in] pKeyTransDecryptPara

Um ponteiro para uma estrutura CMSG_CTRL_KEY_TRANS_DECRYPT_PARA que contém as principais informações de transporte passadas para a função CryptMsgControl nos casos de CMSG_CTRL_DECRYPT ou CMSG_CTRL_KEY_TRANS_DECRYPT . Para o caso CMSG_CTRL_DECRYPT , CryptMsgControl converte a estrutura CMSG_CTRL_DECRYPT_PARA em uma estrutura CMSG_CTRL_KEY_TRANS_DECRYPT_PARA .

O membro EncryptedKey do membro pKeyTrans contém os bytes CEK a serem descriptografados. Como uma estrutura CMSG_CTRL_KEY_TRANS_DECRYPT_PARA pode conter uma escolha HCRYPTPROV , seu membro hNCryptKey não deve ser usado para descriptografar EncryptedKey. Em vez disso, você deve usar o hNCryptKey especificado no parâmetro pCNGContentDecryptInfo .

Essa função não deve atualizar membros da estrutura CMSG_CTRL_KEY_TRANS_DECRYPT_PARA .

[in] dwFlags

Esse parâmetro é reservado. Defina-o como zero.

pvReserved

Esse parâmetro é reservado. Defina-o como NULL.

Retornar valor

Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).

Se a função falhar, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Se essa função de retorno de chamada não der suporte ao algoritmo de criptografia de chave, ela deverá retornar FALSE e chamar SetLastError com ERROR_NOT_SUPPORTED.

Comentários

A função CryptMsgControl chama essa função para as seguintes operações especificadas pelo parâmetro dwCtrlType :

CMSG_CTRL_DECRYPTCMSG_CTRL_KEY_TRANS_DECRYPT Você pode usar funções de suporte do OID para implantar essa função de retorno de chamada. Wincrypt.h define a seguinte constante para essa finalidade.

Constante Definição
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"
 

Exemplos

Para obter um exemplo que implanta uma função de retorno de chamada instalável por OID, consulte Estendendo a funcionalidade de CryptoAPI.

Requisitos

Requisito Valor
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]
Plataforma de Destino Windows
Cabeçalho wincrypt.h

Confira também

Decodificação de dados enveloped