Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I valori interi vengono codificati in un triplo TLV che inizia con un valore di tag di 0x02. Il campo Valore del tripletto TLV contiene l'intero codificato se è positivo o il complemento dei due se è negativo. Se l'intero è positivo ma il bit dell'ordine elevato è impostato su 1, al contenuto viene aggiunto un 0x00 iniziale per indicare che il numero non è negativo. Ad esempio, il byte di ordine elevato di 0x8F (10001111) è 1. Di conseguenza, al contenuto viene aggiunto un byte iniziale zero, come illustrato nella figura seguente.
Se l'intero contiene meno di 128 byte, il campo lunghezza richiede un solo byte per specificare la lunghezza del contenuto. Se l'intero è maggiore di 127 byte, bit 7 del campo lunghezza è impostato su 1 e i bit da 6 a 0 specificano il numero di byte aggiuntivi utilizzati per identificare la lunghezza del contenuto. Per altre informazioni, vedere lunghezza codificata e byte di valore.
L'esempio seguente, da PKCS #10 Encoded ASN.1, mostra la codifica per una chiave pubblica a 128 byte. Il primo byte contiene il valore tag per il tipo di dati integer 0x02. Il secondo e il terzo byte contengono il valore lunghezza. Bit 7 del secondo byte è impostato su 1 perché sono presenti più di 127 byte di contenuto. I bit da 0 a 6 del secondo byte specificano il numero di byte finali necessari, in questo caso uno, per specificare accuratamente la lunghezza del contenuto. Il terzo byte specifica il numero di byte di contenuto, 0x81. Il quarto byte, 0x00, viene aggiunto al contenuto per indicare che l'intero è effettivamente un valore positivo anche se il bit del segno del byte del contenuto iniziale (0x8F) è impostato su 1.
02 81 81 ; INTEGER (81 Bytes)
| 00
| 8f e2 41 2a 08 e8 51 a8 8c b3 e8 53 e7 d5 49 50
| b3 27 8a 2b cb ea b5 42 73 ea 02 57 cc 65 33 ee
| 88 20 61 a1 17 56 c1 24 18 e3 a8 08 d3 be d9 31
| f3 37 0b 94 b8 cc 43 08 0b 70 24 f7 9c b1 8d 5d
| d6 6d 82 d0 54 09 84 f8 9f 97 01 75 05 9c 89 d4
| d5 c9 1e c9 13 d7 2a 6b 30 91 19 d6 d4 42 e0 c4
| 9d 7c 92 71 e1 b2 2f 5c 8d ee f0 f1 17 1e d2 5f
| 31 5b b1 9c bc 20 55 bf 3a 37 42 45 75 dc 90 65
Nell'esempio seguente viene illustrato come viene codificato il valore intero 0x03. Il Tag byte contiene 0x02 e la Lunghezza byte specifica che è presente un byte di contenuto.
02 01 ; INTEGER (1 Bytes)
| 03
Argomenti correlati