BIT STRING
Il tipo di dati BIT STRING viene codificato in un triplo TLV che inizia con un Tag byte di 0x03. Il campo valore del tripletto TLV contiene un byte iniziale che specifica il numero di bit rimasti inutilizzati nel byte finale del contenuto. Nell'esempio seguente, il campo lunghezza è impostato su 0x03 perché seguono tre byte di contenuto e il byte iniziale del campo Valore è impostato su 0x04 perché sono presenti quattro bit inutilizzati nell'ultimo byte di contenuto. Ogni bit inutilizzato è indicato dalla lettera x.
L'esempio seguente, adattato dall'argomento PKCS #10 Encoded ASN.1, mostra la firma codificata di una richiesta di certificato PKCS #10 di esempio. Il primo byte contiene il valore di tag per il tipo di dati BIT STRING bit 0x03. Il secondo e il terzo byte contengono la lunghezza della matrice di byte. 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 lunghezza byte, in questo caso uno. Il terzo byte specifica il numero di byte di contenuto, 0x81. Il quarto byte, 0x00, specifica il numero di bit inutilizzati presenti nell'ultimo byte del contenuto. Si noti che la firma è codificata in ordine di byte big-endian.
0299: 03 81 81 ; BIT_STRING (81 Bytes)
029c: 00
029d: 47 eb 99 5a df 9e 70 0d fb a7 31 32 c1 5f 5c 24
02ad: c2 e0 bf c6 24 af 15 66 0e b8 6a 2e ab 2b c4 97
02bd: 1f e3 cb dc 63 a5 25 ec c7 b4 28 61 66 36 a1 31
02cd: 1b bf dd d0 fc bf 17 94 90 1d e5 5e c7 11 5e c9
02dd: 55 9f eb a3 3e 14 c7 99 a6 cb ba a1 46 0f 39 d4
02ed: 44 c4 c8 4b 76 0e 20 5d 6d a9 34 9e d4 d5 87 42
02fd: eb 24 26 51 14 90 b4 0f 06 5e 52 88 32 7a 95 20
030d: a0 fd f7 e5 7d 60 dd 72 68 9b f5 7b 05 8f 6d 1e
Argomenti correlati