Partager via


CHAÎNE DE BITS

Le type de données BIT STRING est encodé dans un triplet TLV qui commence par un octet Tag de 0x03. Le champ Value du triplet TLV contient un octet de début qui spécifie le nombre de bits inutilisés dans l’octet final du contenu. Dans l’exemple suivant, le champ Longueur est défini sur 0x03 car trois octets de contenu suivent, et l’octet de début du champ Valeur est défini sur 0x04 car il y a quatre bits inutilisés dans le dernier octet de contenu. Chaque bit inutilisé est indiqué par la lettre x.

encodage der du type de données de chaîne de bits

L’exemple suivant, adapté à partir de la rubrique ASN.1 encodé PKCS #10 , montre la signature encodée d’un exemple de demande de certificat PKCS #10. Le premier octet contient la valeur Tag pour le type de données STRING BIT , 0x03. Les deuxième et troisième octets contiennent la longueur du tableau d’octets. Le bit 7 du deuxième octet est défini sur 1, car il y a plus de 127 octets de contenu. Les bits 0 à 6 du deuxième octet spécifient le nombre d’octets de longueur de fin, dans ce cas un. Le troisième octet spécifie le nombre d’octets de contenu, 0x81. Le quatrième octet, 0x00, spécifie le nombre de bits inutilisés qui existent dans le dernier octet de contenu. Notez que la signature est encodée dans l’ordre des octets 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

Système de type ASN.1

Encodage DER des types ASN.1

Octets de longueur et de valeur encodés