Compartilhar via


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

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

Sintaxe

PFN_CMSG_CNG_IMPORT_KEY_AGREE PfnCmsgCngImportKeyAgree;

BOOL PfnCmsgCngImportKeyAgree(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara,
  [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 a CEK. O parâmetro pKeyTransDecryptPara a seguir contém os bytes CEK a serem descriptografados.

[in] pKeyAgreeDecryptPara

Um ponteiro para uma estrutura CMSG_CTRL_KEY_AGREE_DECRYPT_PARA que contém as informações do contrato de chave passadas para a função CryptMsgControl no caso CMSG_CTRL_KEY_AGREE_DECRYPT .

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

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

[in] dwFlags

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

pvReserved

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

Valor retornado

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_KEY_AGREE_DECRYPT Você pode usar as 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_AGREE_FUNC "CryptMsgDllCNGImportKeyAgree"
 

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

   
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