As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWS Encryption SDK referência de formato de mensagem
As informações nesta página são uma referência para criar sua própria biblioteca de criptografia compatível com o AWS Encryption SDK. Se você não estiver criando sua própria biblioteca de criptografia compatível, provavelmente não precisará dessas informações. Para usar o AWS Encryption SDK em uma das linguagens de programação suportadas, consulteLinguagens de programação. Para a especificação que define os elementos de uma AWS Encryption SDK implementação adequada, consulte a AWS Encryption SDK Especificação |
As operações de criptografia AWS Encryption SDK retornam uma única estrutura de dados ou mensagem criptografada que contém os dados criptografados (texto cifrado) e todas as chaves de dados criptografadas. Para compreender essa estrutura de dados ou para criar bibliotecas que a leem ou gravam nela, você precisa compreender o formato da mensagem.
O formato da mensagem consiste em pelo menos duas partes: um cabeçalho e um corpo. Em alguns casos, o formato da mensagem consiste em uma terceira parte, um rodapé. O formato da mensagem define uma sequência ordenada de bytes em ordem de bytes de rede, também chamado de formato big-endian. O formato da mensagem começa com o cabeçalho, seguido pelo corpo, seguido pelo rodapé (se houver).
Os pacotes de algoritmos suportados pelo AWS Encryption SDK usam uma das duas versões de formato de mensagem. Os pacotes de algoritmos sem confirmação de chave usam formato de mensagem versão 1. Os pacotes de algoritmos com confirmação de chave usam formato de mensagem versão 2.
Estrutura do cabeçalho
O cabeçalho da mensagem contém a chave de dados criptografada e informações sobre como o corpo da mensagem é formado. A tabela a seguir descreve os campos que formam o cabeçalho nas versões 1 e 2 do formato de mensagem. Os bytes são anexados na ordem mostrada.
O valor Não presente indica que o campo não existe nessa versão do formato de mensagem. O texto em negrito indica valores que são diferentes em cada versão.
nota
Talvez seja necessário rolar horizontalmente ou verticalmente para ver todos os dados nessa tabela.
Estrutura do cabeçalho | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Campo | Formato da mensagem versão 1 Tamanho (bytes) |
Formato da mensagem versão 2 Tamanho (bytes) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Version | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Type | 1 | Não está presente | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Algorithm ID | 2 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Message ID | 16 | 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AAD Length | 2 Quando o contexto de criptografia está vazio, o valor do campo AAD Comprimento de 2 bytes é 0. |
2 Quando o contexto de criptografia está vazio, o valor do campo AAD Comprimento de 2 bytes é 0. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AAD | Variável. O tamanho desse campo aparece nos 2 bytes anteriores (campo AAD Comprimento). Quando o contexto de criptografia está vazio, não há AAD campo no cabeçalho. |
Variável. O tamanho desse campo aparece nos 2 bytes anteriores (campo AAD Comprimento). Quando o contexto de criptografia está vazio, não há AAD campo no cabeçalho. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Data Key Count | 2 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Data Key(s) | Variável. Determinado pelo número de chaves de dados criptografadas e pelo tamanho de cada uma delas. | Variável. Determinado pelo número de chaves de dados criptografadas e pelo tamanho de cada uma delas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Content Type | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reserved | 4 | Não está presente | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV Length | 1 | Não está presente | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Frame Length | 4 | 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Algorithm Suite Data | Não está presente | Variável. Determinado pelo algoritmo que gerou a mensagem. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Header Authentication | Variável. Determinado pelo algoritmo que gerou a mensagem. | Variável. Determinado pelo algoritmo que gerou a mensagem. |
- Versão
-
A versão do formato desta mensagem. A versão é 1 ou 2 codificado como o byte
01
ou02
em notação hexadecimal - Tipo
-
O tipo deste formato de mensagem. O tipo indica o tipo da estrutura. O único tipo suportado é descrito como dados criptografados e autenticados pelo cliente. Seu valor de tipo é 128 bytes, codificado como byte
80
em notação hexadecimal.Esse campo não está presente na versão 2 do formato de mensagem.
- ID do algoritmo
-
Um identificador para o algoritmo usado. É um valor de 2 bytes interpretado como um inteiro não assinado de 16 bits. Para obter mais informações sobre os algoritmos, consulte AWS Encryption SDK referência de algoritmos.
- ID da mensagem
-
Um valor gerado aleatoriamente que identifica a mensagem. O ID da mensagem:
-
Identifica exclusivamente a mensagem criptografada.
-
Associa levemente o cabeçalho da mensagem ao corpo da mensagem.
-
Fornece um mecanismo para reutilizar uma chave de dados com segurança com várias mensagens criptografadas.
-
Protege contra a reutilização acidental de uma chave de dados ou contra o desgaste de chaves no AWS Encryption SDK.
Esse valor é de 128 bits no formato de mensagem versão 1 e 256 bits na versão 2.
-
- AADComprimento
-
O tamanho dos dados autenticados adicionais (AAD). É um valor de 2 bytes interpretado como um inteiro sem sinal de 16 bits que especifica o número de bytes que contêm o. AAD
Quando o contexto de criptografia está vazio, o valor do campo AAD Comprimento é 0.
- AAD
-
Os dados autenticados adicionais. A AAD é uma codificação do contexto de criptografia, uma matriz de pares de valores-chave em que cada chave e valor é uma sequência de caracteres codificados de UTF -8. O contexto de criptografia é convertido em uma sequência de bytes e usado para o AAD valor. Quando o contexto de criptografia está vazio, não há AAD campo no cabeçalho.
Quando os algoritmos com assinatura são usados, o contexto de criptografia deve conter o par de chave-valor
{'aws-crypto-public-key', Qtxt}
. Qtxt representa o ponto da curva elíptica Q comprimido de acordo com SEC1 versão2.0 e depois codificado em base64. O contexto de criptografia pode conter valores adicionais, mas o tamanho máximo do construído AAD é 2^16 - 1 bytes. A tabela a seguir descreve os campos que formam AAD o. Os pares de valores-chave são classificados, por chave, em ordem crescente, de acordo com o código de -8 caracteres. UTF Os bytes são anexados na ordem mostrada.
AADEstruturaCampo Tamanho (bytes) Key-Value Pair Count 2 Key Length 2 Key Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho da chave). Value Length 2 Value Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho do valor). - Contagem de pares de valores-chave
-
O número de pares de valores-chave no. AAD É um valor de 2 bytes interpretado como um inteiro sem sinal de 16 bits que especifica o número de pares de valores-chave no. AAD O número máximo de pares de valores-chave no AAD é 2^16 - 1.
Quando não há contexto de criptografia ou o contexto de criptografia está vazio, esse campo não está presente na AAD estrutura.
- Comprimento da chave
-
O tamanho da chave do par de chave-valor. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém a chave.
- Chave
-
A chave do par de chave-valor. É uma sequência de UTF -8 bytes codificados.
- Comprimento do valor
-
O tamanho do valor do par de chave-valor. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém o valor.
- Valor
-
O valor do par de chave-valor. É uma sequência de UTF -8 bytes codificados.
- Contagem de chaves de dados criptografados
-
O número de chaves de dados criptografadas. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de chaves de dados criptografadas. O número máximo de chaves de dados criptografadas em cada registro é 65.535 (2^16 - 1).
- Chave (s) de dados criptografada
-
Uma sequência de chaves de dados criptografadas. O tamanho da sequência é determinado pelo número de chaves de dados criptografadas e pelo tamanho de cada uma delas. A sequência contém pelo menos uma chave de dados criptografada.
A tabela a seguir descreve os campos que formam cada chave de dados criptografada. Os bytes são anexados na ordem mostrada.
Estrutura da chave de dados criptografadaCampo Tamanho (bytes) Key Provider ID Length 2 Key Provider ID Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho do ID do provedor de chave). Key Provider Information Length 2 Key Provider Information Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho das informações do provedor de chave). Encrypted Data Key Length 2 Encrypted Data Key Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho da chave de dados criptografada). - Tamanho do ID do provedor de chaves
-
O tamanho do identificador do provedor de chave. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém o ID do provedor de chave.
- ID do provedor de chave
-
O identificador do provedor de chave. É usado para indicar o provedor da chave de dados criptografada e deve ser extensível.
- Tamanho das informações do principal provedor
-
O tamanho das informações do provedor de chave. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém as informações do provedor de chave.
- Informações sobre os principais fornecedores
-
As informações do provedor de chave. São determinadas pelo provedor de chaves.
Quando AWS KMS é o provedor da chave mestra ou você está usando um AWS KMS chaveiro, esse valor contém o Amazon Resource Name (ARN) do AWS KMS key.
- Comprimento da chave de dados criptografados
-
O tamanho da chave de dados criptografada. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém a chave de dados criptografada.
- Chave de dados criptografada
-
A chave de dados criptografada. É a chave de criptografia dos dados criptografada pelo provedor de chaves.
- Tipo de conteúdo
-
O tipo de conteúdo criptografado, com moldura ou sem moldura.
nota
Sempre que possível, use dados com moldura. O AWS Encryption SDK suporta dados não emoldurados somente para uso antigo. Algumas implementações de linguagem do ainda AWS Encryption SDK podem gerar texto cifrado sem moldura. Todas as implementações de linguagem compatíveis podem descriptografar texto cifrado e não emoldurado.
Os dados com moldura são divididos em partes de tamanho igual; cada parte é criptografada separadamente. O conteúdo com moldura é do tipo 2, codificado como o byte
02
em notação hexadecimal.Os dados não emoldurados não são divididos; são um único blob criptografado. O conteúdo sem moldura é do tipo 1, codificado como o byte
01
em notação hexadecimal. - Reservado
-
Uma sequência reservada de 4 bytes. Esse valor deve ser 0. Ele é codificado como os bytes
00 00 00 00
em notação hexadecimal (ou seja, uma sequência de 4 bytes de um valor inteiro de 32 bits igual a 0).Esse campo não está presente na versão 2 do formato de mensagem.
- Comprimento IV
-
O tamanho do IV (initialization vector - vetor de inicialização). É um valor de 1 byte interpretado como um número inteiro não assinado de 8 bits que especifica o número de bytes que contém o IV. Esse valor é determinado pelo valor de bytes do IV do algoritmo que gerou a mensagem.
Este campo não está presente no formato de mensagem versão 2, que somente é compatível com pacotes de algoritmos que usam valores IV determinísticos no cabeçalho da mensagem.
- Comprimento do quadro
-
O tamanho de cada moldura do dado com moldura. É um valor de 4 bytes interpretado como um número inteiro não assinado de 32 bits que especifica o número de bytes que forma cada estrutura. Quando o dado não for com moldura, isto é, quando o valor do campo do
Content Type
campo for 1, esse valor deve ser 0.nota
Sempre que possível, use dados com moldura. O AWS Encryption SDK suporta dados não emoldurados somente para uso antigo. Algumas implementações de linguagem do ainda AWS Encryption SDK podem gerar texto cifrado sem moldura. Todas as implementações de linguagem compatíveis podem descriptografar texto cifrado e não emoldurado.
- Dados do pacote de algoritmos
-
Dados suplementares necessários pelo algoritmo que gerou a mensagem. O tamanho e o conteúdo são determinados pelo algoritmo. Seu tamanho pode ser 0.
Este campo não está presente na versão 1 do formato de mensagem.
- Autenticação de
-
A autenticação do cabeçalho é determinada pelo algoritmo que gerou a mensagem. A autenticação do cabeçalho é calculada sobre o cabeçalho inteiro. Consiste em um IV e uma tag de autenticação. Os bytes são anexados na ordem mostrada.
Estrutura da autenticação do cabeçalhoCampo Tamanho na versão 1.0 (bytes) Tamanho na versão 2.0 (bytes) IV Variável. Determinada pelo valor de bytes do IV do algoritmo que gerou a mensagem. N/D Authentication Tag Variável. Determinada pelo valor dos bytes da tag de autenticação do algoritmo que gerou a mensagem. Variável. Determinada pelo valor dos bytes da tag de autenticação do algoritmo que gerou a mensagem. - IV
-
O vetor de inicialização (IV) usado para calcular a tag de autenticação do cabeçalho.
Este campo não está presente na versão 2 do formato de mensagem. Este campo não está presente na versão 2 do formato de mensagem, que somente é compatível com pacotes de algoritmos que usam valores IV determinísticos no cabeçalho da mensagem.
- Tag de autenticação
-
O valor da autenticação do cabeçalho. É usado para autenticar todo o conteúdo do cabeçalho.
Estrutura do corpo
O corpo da mensagem contém os dados criptografados, chamados de texto cifrado. A estrutura do corpo depende do tipo de conteúdo (sem moldura ou com moldura). As seções a seguir descrevem o formato do corpo da mensagem para cada tipo de conteúdo. A estrutura do corpo da mensagem é a mesma nas versões 1 e 2 do formato de mensagem.
Dados sem moldura
Os dados não emoldurados são criptografados em um único blob com IV e corpo exclusivos. AAD
nota
Sempre que possível, use dados com moldura. O AWS Encryption SDK suporta dados não emoldurados somente para uso antigo. Algumas implementações de linguagem do ainda AWS Encryption SDK podem gerar texto cifrado sem moldura. Todas as implementações de linguagem compatíveis podem descriptografar texto cifrado e não emoldurado.
A tabela a seguir descreve os campos que formam os dados sem moldura. Os bytes são anexados na ordem mostrada.
Estrutura de corpo sem moldura | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Campo | Tamanho, em bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV | Variável. Igual ao valor especificado no byte do IV Length do cabeçalho. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Content Length | 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Content | Variável. Igual ao valor especificado nos 8 bytes anteriores (tamanho do conteúdo criptografado). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Authentication Tag | Variável. Determinado pela implementação do algoritmo usado. |
- IV
-
O vetor de inicialização (IV) para uso com o algoritmo de criptografia.
- Tamanho do conteúdo criptografado
-
O tamanho do conteúdo criptografado ou do texto cifrado. É um valor de 8 bytes interpretado como um número inteiro não assinado de 64 bits que especifica o número de bytes que contém o conteúdo criptografado.
Tecnicamente, o valor máximo permitido é 2^63 - 1 ou 8 exbibytes (8 EiB). No entanto, na prática, o valor máximo é 2^36 - 32 ou 64 gibibytes (64 GiB), devido às restrições impostas pelos algoritmos implementados.
nota
A implementação Java SDK disso restringe ainda mais esse valor a 2^31 - 1 ou 2 gibibytes (2 GiB), devido às restrições na linguagem.
- Conteúdo criptografado
-
O conteúdo criptografado (texto cifrado) como retornado pelo algoritmo de criptografia.
- Tag de autenticação
-
O valor da autenticação do corpo. É usado para autenticar o corpo da mensagem.
Dados com moldura
Em dados com moldura, os dados de texto simples são divididos em partes iguais chamadas molduras. O AWS Encryption SDK criptografa cada quadro separadamente com um IV e um corpo AAD exclusivos.
nota
Sempre que possível, use dados com moldura. O AWS Encryption SDK suporta dados não emoldurados somente para uso antigo. Algumas implementações de linguagem do ainda AWS Encryption SDK podem gerar texto cifrado sem moldura. Todas as implementações de linguagem compatíveis podem descriptografar texto cifrado e não emoldurado.
O tamanho da moldura, que é o tamanho do conteúdo criptografado na moldura, pode ser diferente para cada mensagem. O número máximo de bytes em uma moldura é 2^32 - 1. O número máximo de molduras em uma mensagem é 2^32 - 1.
Há dois tipos de moldura: normal e final. Cada mensagem deve consistir ou incluir uma moldura final.
Todas as molduras normais em uma mensagem têm o mesmo tamanho de moldura. A moldura final pode ter um tamanho de moldura diferente.
A composição das molduras em dados com molduras varia de acordo com o tamanho do conteúdo criptografado.
-
Igual ao tamanho do quadro: quando o tamanho do conteúdo criptografado é igual ao tamanho do quadro das molduras regulares, a mensagem pode consistir em um quadro normal que contém os dados, seguido por um quadro final de tamanho zero (0). Ou, a mensagem pode consistir apenas em um a moldura que contém os dados. Nesse caso, a moldura final tem o mesmo tamanho de moldura que as molduras normais.
-
Múltiplo do tamanho do quadro: quando o tamanho do conteúdo criptografado é um múltiplo exato do tamanho do quadro das molduras regulares, a mensagem pode terminar em um quadro regular que contém os dados, seguido por um quadro final de tamanho zero (0). Ou, a mensagem pode terminar em uma moldura final que contém os dados. Nesse caso, a moldura final tem o mesmo tamanho de moldura que as molduras normais.
-
Não é múltiplo do tamanho do quadro: quando o tamanho do conteúdo criptografado não é um múltiplo exato do comprimento do quadro das molduras regulares, o quadro final contém os dados restantes. O tamanho da moldura final é menor que o tamanho das molduras normais.
-
Menor que o tamanho do quadro: quando o tamanho do conteúdo criptografado é menor que o tamanho do quadro das molduras regulares, a mensagem consiste em um quadro final que contém todos os dados. O tamanho da moldura final é menor que o tamanho das molduras normais.
As tabelas a seguir descrevem os campos que formam as molduras. Os bytes são anexados na ordem mostrada.
Estrutura de corpo com moldura, moldura normal | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Campo | Tamanho, em bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sequence Number | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV | Variável. Igual ao valor especificado no byte do IV Length do cabeçalho. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Content | Variável. Igual ao valor especificado no Frame Length do cabeçalho. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Authentication Tag | Variável. Determinada pelo algoritmo usado, conforme especificado no Algorithm ID do cabeçalho. |
- Número de sequência
-
O número sequencial da moldura. É um número do contador incremental da moldura. É um valor de 4 bytes interpretado como um inteiro não assinado de 32 bits.
Os dados com moldura devem começar no número sequencial 1. As molduras subsequentes devem estar em ordem e devem conter um incremento de 1 da moldura anterior. Caso contrário, o processo de descriptografia será interrompido e relatará um erro.
- IV
-
O vetor de inicialização (IV) da moldura. O SDK usa um método determinístico para construir um IV diferente para cada quadro na mensagem. O tamanho é especificado pelo pacote de algoritmos usado.
- Conteúdo criptografado
-
O conteúdo criptografado (texto cifrado) da moldura, conforme retornado pelo algoritmo de criptografia.
- Tag de autenticação
-
O valor da autenticação da moldura. É usado para autenticar a moldura inteira.
Estrutura de corpo com moldura, moldura final | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Campo | Tamanho, em bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sequence Number End | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sequence Number | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV | Variável. Igual ao valor especificado no byte do IV Length do cabeçalho. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Content Length | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Content | Variável. Igual ao valor especificado nos 4 bytes anteriores (tamanho do conteúdo criptografado). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Authentication Tag | Variável. Determinada pelo algoritmo usado, conforme especificado no Algorithm ID do cabeçalho. |
- Fim do número de sequência
-
Um indicador para a moldura final. O valor é codificado como 4 bytes
FF FF FF FF
em notação hexadecimal. - Número de sequência
-
O número sequencial da moldura. É um número do contador incremental da moldura. É um valor de 4 bytes interpretado como um inteiro não assinado de 32 bits.
Os dados com moldura devem começar no número sequencial 1. As molduras subsequentes devem estar em ordem e devem conter um incremento de 1 da moldura anterior. Caso contrário, o processo de descriptografia será interrompido e relatará um erro.
- IV
-
O vetor de inicialização (IV) da moldura. O SDK usa um método determinístico para construir um IV diferente para cada quadro na mensagem. O tamanho do IV é especificado pelo pacote de algoritmos.
- Tamanho do conteúdo criptografado
-
O tamanho do conteúdo criptografado. É um valor de 4 bytes interpretado como um número inteiro não assinado de 32 bits que especifica o número de bytes que contém o conteúdo criptografado da moldura.
- Conteúdo criptografado
-
O conteúdo criptografado (texto cifrado) da moldura, conforme retornado pelo algoritmo de criptografia.
- Tag de autenticação
-
O valor da autenticação da moldura. É usado para autenticar a moldura inteira.
Estrutura do rodapé
Quando os algoritmos com assinatura são usados, o formato da mensagem contém um rodapé. O rodapé da mensagem contém uma assinatura digital calculada sobre o cabeçalho e o corpo da mensagem. A tabela a seguir descreve os campos que formam o rodapé. Os bytes são anexados na ordem mostrada. A estrutura do rodapé da mensagem é a mesma nas versões 1 e 2 do formato de mensagem.
Estrutura do rodapé | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Campo | Tamanho, em bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Signature Length | 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Signature | Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho da assinatura). |
- Comprimento da assinatura
-
O tamanho da assinatura. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém a assinatura.
- Assinatura
-
A assinatura.