Share via


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

A função de retorno de chamada PFN_CMSG_EXPORT_KEY_TRANS criptografa e exporta a chave de criptografia de conteúdo para um destinatário de transporte de chave de uma mensagem enveloped. PFN_CMSG_EXPORT_KEY_TRANS pode ser instalado usando um OID (identificador de objetoCryptoAPI). Essa função é chamada pela função CryptMsgOpenToEncode quando seu parâmetro dwMsgType é definido como CMSG_ENVELOPED.

Sintaxe

PFN_CMSG_EXPORT_KEY_TRANS PfnCmsgExportKeyTrans;

BOOL PfnCmsgExportKeyTrans(
  [in]      PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
  [in]      PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo,
  [in, out] PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Parâmetros

[in] pContentEncryptInfo

Um ponteiro para uma estrutura CMSG_CONTENT_ENCRYPT_INFO que contém a chave de criptografia de conteúdo.

[in] pKeyTransEncodeInfo

Um ponteiro para uma estrutura de CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO que especifica a chave pública do destinatário usada para criptografar a chave de criptografia de conteúdo.

[in, out] pKeyTransEncryptInfo

Um ponteiro para uma estrutura CMSG_KEY_TRANS_ENCRYPT_INFO que contém a chave de criptografia de conteúdo criptografada.

[in] dwFlags

Este valor não é usado. Defina-o como zero.

pvReserved

Esse valor é 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.

Comentários

A função PFN_CMSG_EXPORT_KEY_TRANS deve atualizar o membro EncryptedKey da estrutura CMSG_KEY_TRANS_ENCRYPT_INFO apontada pelo parâmetro pKeyTransEncryptInfo . Essa função deve usar os membros pfnAlloc e pfnFree da estrutura CMSG_CONTENT_ENCRYPT_INFO apontada pelo parâmetro pContentEncryptInfo para gerenciar a alocação de memória para a chave criptografada.

Você pode usar as funções de suporte do OID para implantar essa função de retorno de chamada. Wincrypt.h define as seguintes constantes para essa finalidade.

Você deve definir diferentes funções de retorno de chamada para chaves CAPI1 e API de Criptografia: chaves CNG (próxima geração). Ambas as funções têm a mesma assinatura, mas usam OIDs diferentes. Qual função é chamada depende do valor do membro fCNG da estrutura CMSG_CONTENT_ENCRYPT_INFO apontada pelo parâmetro pContentEncryptInfo . A tabela a seguir mostra a relação entre a função de retorno de chamada e o valor do membro fCNG .

Valor fCNG Constante Definição
FALSE CMSG_OID_EXPORT_KEY_TRANS_FUNC ou CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC "CryptMsgDllExportKeyTrans"
TRUE CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC "CryptMsgDllCNGExportKeyTrans"

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h