Поделиться через


БИТОВАЯ СТРОКА

Тип данных BIT STRING закодирован в триплет TLV, который начинается с байта тега 0x03. Поле Значение триплета TLV содержит ведущий байт, указывающий количество битов, оставшихся неиспользуемыми в последнем байте содержимого. В следующем примере для поля Длина задано значение 0x03, так как за ней следуют три байта содержимого, а в начале поля Значение задано значение 0x04, так как в последнем байте содержимого имеется четыре неиспользуемых бита. Каждый неиспользуемый бит обозначается буквой x.

Кодировка der типа данных bit string

В следующем примере, адаптированном из раздела PKCS #10 Encoded ASN.1 , показана закодированная подпись примера запроса сертификата PKCS #10. Первый байт содержит значение Tag для типа данных BIT STRING , 0x03. Второй и третий байты содержат длину массива байтов. Бит 7 второго байта имеет значение 1, так как содержимое превышает 127 байт. Биты от 0 до 6 второго байта указывают количество конечных байтов длины , в данном случае один. Третий байт указывает количество байтов содержимого, 0x81. Четвертый байт, 0x00, указывает количество неиспользуемых битов, которые существуют в последнем байте содержимого. Обратите внимание, что сигнатура закодирована в порядке байтов большого байта.

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

Система типов ASN.1

Кодировка DER типов ASN.1

Закодированная длина и значение в байтах