Протоколы Internet


Нотация ASN1 - часть 10


06 07 2A 86 48 86 F7 0D 01

DER-кодирование в данном случае совпадает с BER.

Строки октетов

Тип OCTET STRING служит для представления произвольных последовательностей октетов. Значение OCTET STRING может иметь любую длину, включая нуль. OCTET STRING используется для представления сообщений, включая зашифрованные, а также для типа PBEParameter. Нотация типа OCTET STRING имеет формат.

OCTET STRING [SIZE ({size | size1..size2})]

где size, size1 и size2 опционные ограничения размера. В форме OCTET STRING SIZE(size) строка октетов должна иметь октеты size. В формате OCTET STRING SIZE(size1 .. size2) строка должна содержать число октетов между size1 и size2. Например, тип PBEParameter имеет компоненту типа OCTET STRING:

PBEParameter ::= SEQUENCE {

salt OCTET STRING SIZE (8),

iterationCount INTEGER }

Здесь размер компоненты salt всегда равен 8 октетам. BER-кодирование типа OCTET STRING может быть примитивным или конструктивным. При примитивном кодировании октеты содержимого несут в себе октеты строки с первого по последний. При конструктивном кодировании содержимое октетов представляет собой последовательное объединение субстрок значения OCTET STRING. Например, BER-код значения OCTET STRING 01 23 45 67 89 AB CD EF может иметь один из следующих видов, в зависимости от формата октетов длины и вида кодирования (примитивное/конструктивное).

04 08 01 23 45 67 89 AB CD EF

DER-кодирование

04 81 08 01 23 45 67 89 AB CD EF

Длинный формат октетов длины

24 0С

Конструктивное кодирование

04 04 01 23 45 67

“01 23 45 67” + “89 AB CD EF”

04 04 89 AB CD EF

Строки печатных символов

Тип PrintableString предназначен для описания произвольных последовательностей печатных символов из набора:

A, B,…,Z

a,b,…,z

0,1,…,9

(пробел) ‘ () +, - . / : = ?

Этот тип используется для представления атрибутов имен (Х.520). Нотация типа PrintableString имеет вид:

PrintableString

BER-кодирование значения PrintableString может быть примитивным или конструктивным. При примитивном кодировании печатных символов байты содержимого несут в себе строки октетов печатных ASCII-кодов. При конструктивном кодировании содержимое октетов представляет собой последовательное объединение субстрок. Например, BER-код значения PrintableString “Test User 1” может быть представлено одним из ниже приведенных способов.

13 0B 54 65 73 74 20 55 73 65 72 20 31

DER-кодирование

13 81 0B 54 65 73 74 20 55 73 65 72 20 31

Длинная форма октетов длины

33 0F

Конструктивная форма,

13 05 54 65 73 74 20

“Test” + “User 1”

13 06 55 73 65 72 20 31

<


Начало  Назад  Вперед