Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A função CryptMsgUpdate adiciona conteúdo a uma mensagem criptográfica. O uso dessa função permite que as mensagens sejam construídas por peça por meio de chamadas repetitivas de CryptMsgUpdate. O conteúdo da mensagem adicionada é codificado ou decodificado dependendo se a mensagem foi aberta com CryptMsgOpenToEncode ou CryptMsgOpenToDecode.
Sintaxe
BOOL CryptMsgUpdate(
[in] HCRYPTMSG hCryptMsg,
[in] const BYTE *pbData,
[in] DWORD cbData,
[in] BOOL fFinal
);
Parâmetros
[in] hCryptMsg
Identificador de mensagem criptográfica da mensagem a ser atualizada.
[in] pbData
Um ponteiro para o buffer que contém os dados a serem codificados ou decodificados.
[in] cbData
Número de bytes de dados no buffer pbData .
[in] fFinal
Indica que o último bloco de dados para codificação ou decodificação está sendo processado. O uso correto desse sinalizador depende se a mensagem que está sendo processada tem dados desanexados. A inclusão de dados desanexados em uma mensagem é indicada definindo dwFlags como CMSG_DETACHED_FLAG na chamada para a função que abriu a mensagem.
Se CMSG_DETACHED_FLAG não tiver sido definida e a mensagem tiver sido aberta usando CryptMsgOpenToDecode ou CryptMsgOpenToEncode, fFinal será definida como TRUE e CryptMsgUpdate será chamada apenas uma vez.
Se o sinalizador CMSG_DETACHED_FLAG tiver sido definido e uma mensagem for aberta usando CryptMsgOpenToEncode, fFinal será definida como TRUE somente na última chamada para CryptMsgUpdate.
Se o sinalizador CMSG_DETACHED_FLAG foi definido e uma mensagem é aberta usando CryptMsgOpenToDecode, fFinal é definido como TRUE quando o cabeçalho é processado por uma única chamada para CryptMsgUpdate. Ele é definido como FALSE ao processar os dados desanexados em chamadas subsequentes para CryptMsgUpdate até que o último bloco de dados desanexado seja processado. Na última chamada para CryptMsgUpdate, ela é definida como TRUE.
Quando os dados desanexados são decodificados, o cabeçalho e o conteúdo de uma mensagem estão contidos em BLOBs diferentes. Cada BLOB requer que fFinal seja definido como TRUE quando a última chamada para a função for feita para esse BLOB.
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.
Erros encontrados na função de retorno de chamada definida pelo aplicativo especificada por pStreamInfo em CryptMsgOpenToDecode e CryptMsgOpenToEncode poderão ser propagados para CryptMsgUpdate se o streaming for usado. Se isso acontecer, SetLastError não será chamado por CryptMsgUpdate depois que a função de retorno de chamada retornar, o que preservará todos os erros encontrados sob o controle do aplicativo. É responsabilidade da função de retorno de chamada (ou uma das APIs que ela chama) chamar SetLastError se ocorrer um erro enquanto o aplicativo estiver processando os dados transmitidos.
A tabela a seguir lista os códigos de erro mais comumente retornados pela função GetLastError .
| Código de retorno | Descrição |
|---|---|
|
O tipo de mensagem não é válido. |
|
Erro ao realizar uma operação criptográfica. |
|
O identificador de objeto está mal formatado. |
|
A mensagem não está codificada conforme o esperado. |
|
O algoritmo criptográfico é desconhecido. |
|
Um ou mais argumentos não são válidos. |
|
Ficou sem memória. |
Erros propagados podem ser encontrados de qualquer uma das seguintes funções:
Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação ASN.1 ( Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
| Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
| Plataforma de Destino | Windows |
| Cabeçalho | wincrypt.h |
| Biblioteca | Crypt32.lib |
| DLL | Crypt32.dll |