

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS Encryption SDK riferimento al formato del messaggio
<a name="message-format"></a>


|  | 
| --- |
|  Le informazioni presenti su questa pagina sono un riferimento per la creazione della tua libreria di crittografia, compatibile con AWS Encryption SDK. Se non stai creando la tua libreria di crittografia compatibile, allora è probabile che queste informazioni non ti serviranno. Per utilizzarlo AWS Encryption SDK in uno dei linguaggi di programmazione supportati, consulta[Linguaggi di programmazione](programming-languages.md). Per le specifiche che definiscono gli elementi di una corretta AWS Encryption SDK implementazione, vedere la [AWS Encryption SDK Specificazione](https://github.com/awslabs/aws-encryption-sdk-specification/) in GitHub.  | 

Le operazioni di crittografia incluse AWS Encryption SDK restituiscono una singola struttura di dati o un [messaggio crittografato](concepts.md#message) che contiene i dati crittografati (testo cifrato) e tutte le chiavi di dati crittografate. Per comprendere questa struttura di dati, oppure per creare librerie per le operazioni di lettura e scrittura, hai bisogno di comprendere il formato del messaggio.

Il formato del messaggio è costituito da almeno due parti: un'*intestazione* e un *corpo*. In alcuni casi, il formato del messaggio è composto da una terza parte nota come *piè di pagina*. Il formato del messaggio definisce una sequenza ordinata di byte nell'ordine dei byte di rete, definito anche formato big-endian. Il formato del messaggio inizia con l'intestazione, seguita dal corpo, seguita dal piè di pagina (quando disponibile).

Le [suite di algoritmi](algorithms-reference.md) supportate da AWS Encryption SDK utilizzano una delle due versioni di formato di messaggio. Le suite di algoritmi senza [impegno chiave](concepts.md#key-commitment) utilizzano il formato dei messaggi versione 1. Le suite di algoritmi con impegno chiave utilizzano il formato dei messaggi versione 2. 

**Topics**
+ [Struttura dell'intestazione](#header-structure)
+ [Struttura corpo](#body-structure)
+ [Struttura piè di pagina](#footer-structure)

## Struttura dell'intestazione
<a name="header-structure"></a>

L'intestazione del messaggio contiene la chiave di dati crittografati e le informazioni su come è formato il corpo del messaggio. La tabella seguente descrive i campi che costituiscono l'intestazione nelle versioni 1 e 2 dei formati di messaggio. I byte vengono aggiunti nell'ordine mostrato. 

Il valore **Non presente** indica che il campo non esiste in quella versione del formato del messaggio. **Il testo in grassetto** indica valori diversi in ogni versione.

**Nota**  
Potrebbe essere necessario scorrere orizzontalmente o verticalmente per visualizzare tutti i dati di questa tabella.


**Struttura dell'intestazione**  

| Campo | Formato del messaggio (versione 1)Lunghezza (byte) | Formato dei messaggi versione 2Lunghezza (byte) | 
| --- | --- | --- | 
| [Version](#header-version) | 1 | 1 | 
| [Type](#header-type) | 1 | Non presente | 
| [Algorithm ID](#header-algorithm-id) | 2 | 2 | 
| [Message ID](#header-message-id) | 16 | 32 | 
| [AAD Length](#header-aad-length) | 2Quando il [contesto di crittografia](concepts.md#encryption-context) è vuoto, il valore del campo Lunghezza AAD a 2 byte è 0. | 2Quando il [contesto di crittografia](concepts.md#encryption-context) è vuoto, il valore del campo Lunghezza AAD a 2 byte è 0. | 
| [AAD](#header-aad) | Variabile. La lunghezza di questo campo viene visualizzata nei 2 byte precedenti (campo Lunghezza AAD). Quando il [contesto di crittografia](concepts.md#encryption-context) è vuoto, non vi è alcun campo AAD nell'intestazione. |  Variabile. La lunghezza di questo campo viene visualizzata nei 2 byte precedenti (campo AAD Length). Quando il [contesto di crittografia](concepts.md#encryption-context) è vuoto, non vi è alcun campo AAD nell'intestazione.  | 
| [Encrypted Data Key Count](#header-data-key-count) | 2 | 2 | 
| [Encrypted Data Key(s)](#header-data-keys) | Variabile. Determinato dal numero di chiavi di dati crittografati e dalla lunghezza di ciascuna. | Variabile. Determinato dal numero di chiavi di dati crittografati e dalla lunghezza di ciascuna. | 
| [Content Type](#header-content-type) | 1 | 1 | 
| [Reserved](#header-reserved) | 4 | Non presente | 
| [IV Length](#header-iv-length) | 1 | Non presente | 
| [Frame Length](#header-frame-length) | 4 | 4 | 
| [Algorithm Suite Data](#algorithm-suite-data) | Non presente | Variabile. Determinato dall'[algoritmo](algorithms-reference.md) che ha generato il messaggio. | 
| [Header Authentication](#header-authentication) | Variabile. Determinato dall'[algoritmo](algorithms-reference.md) che ha generato il messaggio. | Variabile. Determinato dall'[algoritmo](algorithms-reference.md) che ha generato il messaggio. | 

**Versione**  
La versione di questo formato di messaggio. La versione è codificata 1 o 2 come byte `01` o `02` in notazione esadecimale

**Tipo**  
Il tipo di questo formato di messaggio. Il tipo indica il tipo di struttura. L'unico tipo supportato viene descritto come *dati crittografati autenticati dal cliente*. Il valore del tipo è 128, codificato come byte `80` in notazione esadecimale.  
Questo campo non è presente nella versione 2 del formato di messaggio.

**ID dell'algoritmo**  
Identificativo dell'algoritmo utilizzato. È un valore a 2 byte interpretato come un numero intero senza segno a 16 bit. Per ulteriori informazioni sugli algoritmi, consulta [AWS Encryption SDK riferimento agli algoritmi](algorithms-reference.md).

**ID del messaggio**  
Un valore generato casualmente che identifica il messaggio. L'ID del messaggio:  
+ Identifica in modo univoco il messaggio crittografato.
+ Associa debolmente l'intestazione del messaggio al corpo del messaggio.
+ Fornisce un meccanismo per riutilizzare una chiave di dati in modo sicuro con più messaggi crittografati.
+ Protegge da un riutilizzo accidentale della chiave di dati o dall'esaurimento delle chiavi nella AWS Encryption SDK.
Questo valore è 128 bit nella versione 1 del formato di messaggio e 256 bit nella versione 2.

**Lunghezza AAD**  
La durata dei dati autenticati aggiuntivi (AAD). Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono l'AAD.  
Quando il [contesto di crittografia](concepts.md#encryption-context) è vuoto, il valore del campo Lunghezza AAD è 0.

**AAD**  
Dati autenticati aggiuntivi. L'AAD è una codifica del [contesto di crittografia](concepts.md#encryption-context), un array di coppie chiave-valore in cui ciascuna chiave e il valore sono una stringa di caratteri con codifica UTF-8. Il contesto di crittografia viene trasformato in una sequenza di byte e utilizzato per il valore AAD. Quando il contesto di crittografia è vuoto, non vi è alcun campo AAD nell'intestazione.  
Quando vengono utilizzati gli [algoritmi con firma](algorithms-reference.md), il contesto di crittografia deve contenere la coppia chiave-valore `{'aws-crypto-public-key', Qtxt}`. Qtxt rappresenta la curva ellittica punto Q compressa in base alla [SEC 1 versione 2.0](http://www.secg.org/sec1-v2.pdf) e con codifica base64. Il contesto di crittografia può contenere valori aggiuntivi, ma la durata massima dell'AAD costruito è di 2 ^ 16 - 1 byte.  
La tabella seguente descrive i campi che costituiscono l'AAD. Le coppie chiave-valore sono ordinate per chiave, in ordine crescente in base al codice di caratteri UTF-8. I byte vengono aggiunti nell'ordine mostrato.    
**Struttura AAD**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/encryption-sdk/latest/developer-guide/message-format.html)  
**Numero di coppie chiave-valore**  
Il numero di coppie chiave-valore nell'AAD. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di coppie chiave-valore nell'AAD. Il numero massimo di coppie chiave-valore nell'AAD è di 2 ^ 16 - 1.  
Quando non vi è alcun contesto di crittografia o il contesto di crittografia è vuoto, questo campo non è presente nella struttura AAD.  
**Lunghezza della chiave**  
La lunghezza della chiave per la coppia chiave-valore. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono la chiave.  
**Chiave**  
La chiave per la coppia chiave-valore. Si tratta di una sequenza di byte con codifica UTF-8.  
**Lunghezza del valore**  
La lunghezza del valore per la coppia chiave-valore. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono il valore.  
**Valore**  
Il valore per la coppia chiave-valore. Si tratta di una sequenza di byte con codifica UTF-8.

**Numero di chiavi di dati crittografati**  
Il numero di chiavi di dati crittografati. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di chiavi di dati crittografati. Il numero massimo di chiavi dati crittografate in ogni messaggio è 65.535 (2^16 - 1).

**Chiavi dati crittografate**  
Sequenza di chiavi di dati crittografati. La lunghezza della sequenza è determinata dal numero di chiavi di dati crittografati e dalla lunghezza di ciascuna. La sequenza contiene almeno una chiave di dati crittografati.  
La tabella seguente descrive i campi che costituiscono ogni chiave di dati crittografati. I byte vengono aggiunti nell'ordine mostrato.    
**Struttura chiave dati crittografati**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/encryption-sdk/latest/developer-guide/message-format.html)  
**Lunghezza dell'ID del fornitore di chiavi**  
Lunghezza dell'identificatore del provider della chiave. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono l'ID del provider della chiave.  
**ID del fornitore di chiavi**  
Identificatore del provider della chiave. Viene utilizzato per indicare il provider della chiave dei dati crittografati ed è destinato a essere ampliabile.  
**Lunghezza delle informazioni chiave del fornitore**  
Lunghezza delle informazioni del provider della chiave. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono le informazioni del provider della chiave.  
**Informazioni chiave sul fornitore**  
Informazioni provider chiave. Dipende dal provider di chiavi.  
Quando AWS KMS è il fornitore della chiave principale o utilizzi un AWS KMS portachiavi, questo valore contiene l'Amazon Resource Name (ARN) di. AWS KMS key  
**Lunghezza della chiave di dati crittografati**  
La lunghezza della chiave di dati crittografati. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono la chiave di dati crittografati.  
**Chiave dati crittografata**  
Chiave di dati crittografati. È la chiave di crittografia dei dati crittografati dal provider di chiavi.

**Tipo di contenuto**  
Il tipo di dati crittografati, senza frame o incorniciati.  
Quando possibile, utilizza dati con frame. AWS Encryption SDK Supporta dati senza frame solo per uso precedente. Alcune implementazioni linguistiche di AWS Encryption SDK possono ancora generare testo cifrato senza frame. Tutte le implementazioni linguistiche supportate possono decrittografare testo cifrato con e senza frame.
I dati con frame sono suddivisi in parti di uguale lunghezza; ogni parte viene crittografata separatamente. Il contenuto framed è di tipo 2, codificato come byte `02` in notazione esadecimale.  
I dati senza frame non vengono divisi; si tratta di un unico blob crittografato. Il contenuto non-framed è di tipo 1, codificato come byte `01` in notazione esadecimale.

**È riservato**  
Una sequenza riservata di 4 byte. Questo valore deve essere 0. E' codificato come byte `00 00 00 00` in notazione esadecimale (una sequenza a 4 byte di un valore intero a 32 bit pari a 0).  
Questo campo non è presente nella versione 2 del formato di messaggio.

**IV Lunghezza**  
La lunghezza del vettore di inizializzazione (IV). Si tratta di un valore di 1 byte interpretato come un numero intero senza segno a 8 bit che specifica il numero di byte che contengono l'IV. Tale valore viene determinato dal valore dell'IV in byte dell'[algoritmo](algorithms-reference.md) che ha generato il messaggio.  
Questo campo non è presente nella versione 2 del formato di messaggio, che supporta solo suite di algoritmi che utilizzano valori IV deterministici nell'intestazione del messaggio.

**Lunghezza del fotogramma**  
La lunghezza di ogni frame di dati incorniciati. È un valore a 4 byte interpretato come un numero intero senza segno a 32 bit che specifica il numero di byte in ogni frame. Quando i dati non sono inclusi in frame, ovvero quando il valore del `Content Type` campo è 1, questo valore deve essere 0.  
Quando possibile, usa dati incorniciati. AWS Encryption SDK Supporta dati senza frame solo per uso precedente. Alcune implementazioni linguistiche di AWS Encryption SDK possono ancora generare testo cifrato senza frame. Tutte le implementazioni linguistiche supportate possono decrittografare testo cifrato con e senza frame.

**Algorithm Suite Data**  
Dati supplementari necessari all'[algoritmo](algorithms-reference.md) che ha generato il messaggio. La lunghezza e il contenuto sono determinati dall'algoritmo. La sua lunghezza potrebbe essere 0.  
Questo campo non è presente nella versione 1 del formato di messaggio.

**Autenticazione dell'intestazione**  
L'autenticazione dell'intestazione viene determinata dall'[algoritmo](algorithms-reference.md) che ha generato il messaggio. L'autenticazione dell'intestazione viene calcolata in base all'intera intestazione. È costituito da un IV e un tag di autenticazione. I byte vengono aggiunti nell'ordine mostrato.    
**Struttura autenticazione dell'intestazione**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/encryption-sdk/latest/developer-guide/message-format.html)  
**IV**  
Il vettore di inizializzazione (IV) utilizzato per calcolare il tag di autenticazione dell'intestazione.  
Questo campo non è presente nell'intestazione del formato dei messaggi versione 2. La versione 2 del formato dei messaggi supporta solo suite di algoritmi che utilizzano valori IV deterministici nell'intestazione del messaggio.  
**Tag di autenticazione**  
Il valore di autenticazione per l'intestazione. È utilizzato per autenticare l'intero contenuto dell'intestazione.

## Struttura corpo
<a name="body-structure"></a>

Il corpo del messaggio contiene i dati crittografati, denominati *testo codificato*. La struttura del corpo dipende dal tipo di contenuto (non-framed o framed). Le seguenti sezioni descrivono il formato del corpo del messaggio per ogni tipo di contenuto. La struttura del corpo del messaggio è la stessa nelle versioni 1 e 2 del formato dei messaggi.

**Topics**
+ [Dati non-framed](#body-no-framing)
+ [Dati framed](#body-framing)

### Dati non-framed
<a name="body-no-framing"></a>

I dati non-framed sono crittografati in un singolo blob con un IV univoco e l'[AAD del corpo](body-aad-reference.md).

**Nota**  
Quando possibile, usa dati con frame. AWS Encryption SDK Supporta dati senza frame solo per uso precedente. Alcune implementazioni linguistiche di AWS Encryption SDK possono ancora generare testo cifrato senza frame. Tutte le implementazioni linguistiche supportate possono decrittografare testo cifrato con e senza frame.

La tabella seguente descrive i campi che costituiscono i dati non-framed. I byte vengono aggiunti nell'ordine mostrato.


**Struttura del corpo non-framed**  

| Campo | Lunghezza, in byte | 
| --- | --- | 
| [IV](#body-unframed-iv) | Variabile. Pari al valore specificato nei [IV Length](#header-iv-length) byte dell'intestazione. | 
| [Encrypted Content Length](#body-unframed-content-length) | 8 | 
| [Encrypted Content](#body-unframed-content) | Variabile. Pari al valore specificato negli 8 byte precedenti (lunghezza contenuto crittografato). | 
| [Authentication Tag](#body-unframed-tag) | Variabile. Determinato dall'[implementazione dell'algoritmo](algorithms-reference.md) utilizzato. | 

**IV**  
Il vettore di inizializzazione (IV) da usare con l'[algoritmo di crittografia](algorithms-reference.md).

**Lunghezza del contenuto crittografato**  
La lunghezza dei contenuti crittografati, o il *testo cifrato*. Si tratta di un valore di 8 byte interpretato come un numero intero senza segno a 64 bit che specifica il numero di byte che contengono il contenuto crittografato.  
Tecnicamente, il valore massimo consentito è di 2 ^ 63 - 1 o 8 exbibyte EiB (8). Tuttavia, in pratica, il valore massimo è 2 ^ 36 - 32 o 64 gibibytes (64 GiB), a causa delle limitazioni imposte dagli [algoritmi implementati](algorithms-reference.md).  
L'implementazione Java di questo SDK limita ulteriormente questo valore a 2 ^ 31 - 1 o 2 gibibyte (2 GiB), a causa di limitazioni nel linguaggio.

**Contenuto crittografato**  
I contenuti crittografati (testo codificato) come sono restituiti dall'[algoritmo di crittografia](algorithms-reference.md).

**Tag di autenticazione**  
Il valore di autenticazione per il corpo. Viene utilizzato per autenticare il corpo del messaggio.

### Dati framed
<a name="body-framing"></a>

Nei dati incorniciati, i dati di testo normale sono divisi in parti di uguale lunghezza denominate *frame*. AWS Encryption SDK Crittografa ogni frame separatamente con un IV e un [AAD](body-aad-reference.md) univoci.

**Nota**  
Quando possibile, utilizza dati con frame. AWS Encryption SDK Supporta dati senza frame solo per uso precedente. Alcune implementazioni linguistiche di AWS Encryption SDK possono ancora generare testo cifrato senza frame. Tutte le implementazioni linguistiche supportate possono decrittografare testo cifrato con e senza frame.

 

La [lunghezza del frame](#header-frame-length), ovvero la lunghezza del [contenuto crittografato](#body-framed-regular-content) nel frame, può essere diversa per ogni messaggio. Il numero massimo di byte in un frame è 2^32 - 1. Il numero massimo di frame in un messaggio è 2^32 - 1.

Sono disponibili due tipi di frame: *periodici* e *finali*. Ogni messaggio deve essere costituito da o includere un frame finale. 

Tutti i frame normali di un messaggio hanno la stessa lunghezza del frame. Il frame finale può avere una lunghezza del frame diversa. 

La composizione dei frame nei dati framed varia a seconda della lunghezza del contenuto crittografato.
+ **Uguale alla lunghezza del frame: quando la lunghezza del contenuto crittografato è uguale** alla lunghezza del frame dei frame normali, il messaggio può essere costituito da un frame normale che contiene i dati, seguito da un frame finale di lunghezza zero (0). In alternativa, il messaggio può essere costituito solo da un frame finale contenente i dati. In questo caso, il frame finale ha la stessa lunghezza del frame normale.
+ **Multiplo della lunghezza del frame**: quando la lunghezza del contenuto crittografato è un multiplo esatto della lunghezza del frame dei frame normali, il messaggio può terminare in un frame normale che contiene i dati, seguito da un frame finale di lunghezza zero (0). In alternativa, il messaggio può terminare in un frame finale contenente i dati. In questo caso, il frame finale ha la stessa lunghezza del frame normale.
+ **Non è un multiplo della lunghezza del frame**: quando la lunghezza del contenuto crittografato non è un multiplo esatto della lunghezza del frame dei frame normali, il frame finale contiene i dati rimanenti. La lunghezza del frame finale è inferiore alla lunghezza del frame dei frame normali. 
+ Lunghezza **del frame inferiore alla lunghezza** del frame: quando la lunghezza del contenuto crittografato è inferiore alla lunghezza del frame normale, il messaggio è costituito da un frame finale che contiene tutti i dati. La lunghezza del frame finale è inferiore alla lunghezza del frame dei frame normali.

Le tabelle seguenti descrivono i campi che costituiscono i frame. I byte vengono aggiunti nell'ordine mostrato.


**Struttura corpo framed, frame periodico**  

| Campo | Lunghezza, in byte | 
| --- | --- | 
| [Sequence Number](#body-framed-regular-sequence-number) | 4 | 
| [IV](#body-framed-regular-iv) | Variabile. Pari al valore specificato nei [IV Length](#header-iv-length) byte dell'intestazione. | 
| [Encrypted Content](#body-framed-regular-content) | Variabile. Pari al valore specificato nei [Frame Length](#header-frame-length) dell'intestazione. | 
| [Authentication Tag](#body-framed-regular-tag) | Variabile. Stabilito dall'algoritmo utilizzato, come specificato nel [Algorithm ID](#header-algorithm-id) dell'intestazione. | 

**Numero di sequenza**  
Il numero di sequenza del frame. Si tratta di un numero di contatori incrementale per il frame. È un valore a 4 byte interpretato come un numero intero senza segno a 32 bit.  
I dati framed devono iniziare al numero di sequenza 1. I frame successivi devono essere in ordine e devono contenere un incremento di 1 del frame precedente. In caso contrario, il processo di decrittografia arresta e segnala un errore.

**IV**  
Il vettore di inizializzazione (IV) per il frame. L'SDK utilizza un metodo deterministico per creare un altro IV per ogni frame nel messaggio. La lunghezza viene specificata dalla [suite dell'algoritmo](algorithms-reference.md) utilizzato.

**Contenuto crittografato**  
I contenuti crittografati (testo codificato) per il frame come sono restituiti dall'[algoritmo di crittografia](algorithms-reference.md).

**Tag di autenticazione**  
Il valore di autenticazione per il frame. Viene utilizzato per autenticare il frame completo.


**Struttura corpo con frame, frame finale**  

| Campo | Lunghezza, in byte | 
| --- | --- | 
| [Sequence Number End](#body-framed-final-sequence-number-end) | 4 | 
| [Sequence Number](#body-framed-final-sequence-number) | 4 | 
| [IV](#body-framed-final-iv) | Variabile. Pari al valore specificato nei [IV Length](#header-iv-length) byte dell'intestazione. | 
| [Encrypted Content Length](#body-framed-final-content-length) | 4 | 
| [Encrypted Content](#body-framed-final-content) | Variabile. Pari al valore specificato negli 4 byte precedenti (lunghezza contenuto crittografato). | 
| [Authentication Tag](#body-framed-final-tag) | Variabile. Stabilito dall'algoritmo utilizzato, come specificato nel [Algorithm ID](#header-algorithm-id) dell'intestazione. | 

**Fine del numero di sequenza**  
Un indicatore per il frame finale. Il valore è codificato come 4 byte `FF FF FF FF` in notazione esadecimale.

**Numero di sequenza**  
Il numero di sequenza del frame. Si tratta di un numero di contatori incrementale per il frame. È un valore a 4 byte interpretato come un numero intero senza segno a 32 bit.  
I dati framed devono iniziare al numero di sequenza 1. I frame successivi devono essere in ordine e devono contenere un incremento di 1 del frame precedente. In caso contrario, il processo di decrittografia arresta e segnala un errore.

**IV**  
Il vettore di inizializzazione (IV) per il frame. L'SDK utilizza un metodo deterministico per creare un altro IV per ogni frame nel messaggio. La lunghezza del IV viene specificata dalla [suite dell'algoritmo](algorithms-reference.md).

**Lunghezza del contenuto crittografato**  
La lunghezza del contenuto crittografato. Si tratta di un valore di 4 byte interpretato come un numero intero senza segno a 32 bit che specifica il numero di byte che contengono il contenuto crittografato per il frame.

**Contenuto crittografato**  
I contenuti crittografati (testo codificato) per il frame come sono restituiti dall'[algoritmo di crittografia](algorithms-reference.md).

**Tag di autenticazione**  
Il valore di autenticazione per il frame. Viene utilizzato per autenticare il frame completo.

## Struttura piè di pagina
<a name="footer-structure"></a>

Quando vengono utilizzati gli [algoritmi con firma](algorithms-reference.md) , il formato del messaggio contiene un piè di pagina. Il piè di pagina del messaggio contiene una [firma digitale](concepts.md#digital-sigs) calcolata sull'intestazione e sul corpo del messaggio. La tabella seguente descrive i campi che costituiscono il piè di pagina. I byte vengono aggiunti nell'ordine mostrato. La struttura del piè di pagina del messaggio è la stessa nelle versioni 1 e 2 del formato dei messaggi.


**Struttura piè di pagina**  

| Campo | Lunghezza, in byte | 
| --- | --- | 
| [Signature Length](#footer-signature-length) | 2 | 
| [Signature](#footer-signature) | Variabile. Pari al valore specificato nei 2 byte precedenti (lunghezza firma). | 

**Lunghezza della firma**  
La lunghezza della firma. Si tratta di un valore di 2 byte interpretato come un numero intero senza segno a 16 bit che specifica il numero di byte che contengono la firma.

**Firma**  
La firma.