CHAÎNE D’OCTETS
Le type de données ASN.1 OCTET STRING est encodé en triplet TLV qui commence par un octet de balise de 0x04. Les types de données OCTET STRING et BIT STRING sont très similaires. Ainsi, les deux types sont encodés de la même manière, sauf que, étant donné que l’octet de fin d’une chaîne OCTET ne peut pas avoir de bits inutilisés, aucun octet de début ne doit être ajouté au contenu. L’exemple suivant, adapté à partir de la rubrique ASN.1 encodé en CMC , montre comment le nom d’un modèle de certificat est encodé en tant que tableau d’octets.
30 17 ; SEQUENCE (17 Bytes)
| 06 09 ; OBJECT_ID (9 Bytes)
| | 2b 06 01 04 01 82 37 14 02 ; 1.3.6.1.4.1.311.20.2
| 04 0a ; OCTET_STRING (a Bytes)
| 1e 08 00 55 00 73 00 65 00 72 ; ...U.s.e.r
Si le tableau d’octets contient moins de 128 octets, le champ Longueur du triplet TLV ne nécessite qu’un octet pour spécifier la longueur du contenu. S’il s’agit de plus de 127 octets, le bit 7 du champ Longueur est défini sur 1 et les bits 6 à 0 spécifient le nombre d’octets supplémentaires utilisés pour identifier la longueur du contenu. Ceci est illustré dans l’exemple suivant, où le bit d’ordre élevé du deuxième octet sur la première ligne est défini sur 1 et l’octet indique qu’il existe un octet de longueur de fin. Le troisième octet spécifie donc que le contenu est 0x80 octets longs.
04 81 80 ; OCTET_STRING (80 Bytes)
38 10 60 e2 70 69 91 4a ; 8.`.pi.J
8b b5 22 57 2a 62 ef de ; .."W*b..
15 7d 59 d6 4e 20 9a 45 ; .}Y.N .E
2b e3 fd fc 68 ba af bf ; +...h...
9c 17 b0 8e 6d c4 29 1e ; ....m.).
e3 21 ac bb 5a 8a c9 67 ; .!..Z..g
0a d4 45 93 10 c0 26 eb ; ..E...&.
0a 83 c2 b1 40 87 36 f7 ; ....@.6.
a0 26 da b9 bb 46 73 88 ; .&...Fs.
7a 67 b9 e6 b3 6f ea 59 ; zg...o.Y
28 8a d3 92 72 f6 7b 89 ; (...r.{.
a0 d8 2d 9e 40 eb 1e bb ; ..-.@...
6e ae f0 5a ed 16 c9 e3 ; n..Z....
27 59 37 8f f3 4a 98 60 ; 'Y7..J.`
f8 fb a7 0a ee 1b 6e 91 ; ......n.
95 96 cf 0d 56 ac ab 35 ; ....V..5
Rubriques connexes