Последовательность

30

16

Булевский тип

01



  1. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ
    «ПОСЛЕДОВАТЕЛЬНОСТЬ ИЗ»

    1. Кодовое представление значения «последовательность из» должно быть составным.

    2. Группа октетов содержимого должна состоять из полных кодовых представлений значений данных типа, приведенного в оп­ределении типа «последовательность из» в нотации АСН.1.

    3. Порядок следования кодовых представлений значений данных должен совпадать с порядком следования значений данных в кодируемом значении «последовательность из».

  2. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «МНОЖЕСТВО»

    1. Кодовое представление значения «множество» должно быть составным.

    2. Группа октетов содержимого должна состоять из пол­ных кодовых представлений значений данных, по одному из каж­дого типа, перечисленного в определении типа «множество» в нота­ции АСН.1, в порядке, определяемом отправителем, за возможным исключением типов, отмеченных в определении ключевым словом «OPTIONAL» или ключевым словом «DEFAULT».

    3. Кодовое представление значения данных, тип которого был отмечен ключевым словом «OPTIONAL» или «DEFAULT», мо­жет присутствовать в октетах содержимого, но необязательно.

Примечание. Порядок следования значений данных в значении «мно­жество» несуществен и не накладывает никаких ограничений на их порядок следования при передаче.

  1. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «МНОЖЕСТВО ИЗ»

    1. Кодовое представление значения «множество из» должно быть составным.

    2. Требования те же, что и.в п. 13.2.

    3. Порядок следования значений данных не требуется сох­ранять при кодировании и последующем декодировании.

  2. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ВЫБОРОЧНОГО ЗНАЧЕНИЯ

Кодовое представление значения выборочного типа должно быть тем же, что и кодовое представление значения выбранного типа.

Примечания:

Ju Кодовое представление может быть простым или составным; это зависит от выбранного типа.

  1. Тег, используемый в октетах идентификатора, является тегом выбранного типа, в соответствии с определением выборочного типа, в нотация АСН.1.

  1. КОДОВОЕ ПРЕДСТАВЛЕНИЕ СЕЛЕКТИВНОГО ЗНАЧЕНИЯ

Кодовое представление значения селективного типа должно быть тем же, что и кодовое, представление значения селектируемо­го типа.

Примечание. Кодовое представление может быть простым или состав­ным, что зависит ат селектируемого типа.

  1. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ТЕГИРОВАННОГО ЗНАЧЕНИЯ

    1. Кодовое представление тегированного значения получа­ется из полного кодового представления соответствующего значе­ния данных того «типа», который задан в обозначении «тегирован­ный тип» (называемого исходным кодовым представлением) спосо­бом, описанным в пп. 18.2 и 18.3.

    2. Если в определении тегированного типа не использовалось ключевое слово «IMPLICIT», то кодовое представление значения должно быть составным и группа октетов содержимого должна совпадать с полным исходным кодовым представлением.

    3. Если при определении типа использовалось ключевое сло­во «IMPLICIT», то должны быть выполнены следующие требова­ния:

    4. 'кодовое представление допжно-быть составным, :если -исход­ное кодовое представление‘составное;

    5. труппа октетов содержимого должна ‘ совпадать с‘группой октетов содержимого исходного кодового представления.

Пример. Ниже приводятся кодовые представления значения

«Jones» для следующих типов АСНЛ:

Туре! : : = Visibl£String

Туре2 : : = [APPLICATION Зі] IMPLICIT Туpeil

ТуреЗ : : = [2і] Туре2

Туре4 : : = [APPLICATION 7]‘IMPLICIT ТуреЗ

Туреб : : = [2] IMPLICIT Турё2

Эти кодовые представления следующие:

для Туре1!:

VisfbleS'tring Длина Содержимое

1А 05 4A6F6E6573 ..

для Туре2:

[APPLICATION 3] Длина Содержимое

25

43

5

4A6F6E673

для ТуреЗ:

[2] Длина Содержимое


А2 07 [APPLICATION 3]

Длина

Содержимое

43

05

4A6F6E65

для Туре4: [APPLICATION 7]

Длина

Содержимое

67

07


[APPLICATION 7]

Длина

Содержимое

43

05

4A6F6E6573

для Туре5:

[2]

Длина

Содержимое

82

05

4A6F6E6573

19. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ ПРОИЗВОЛЬНОГО ТИПА



Кодовое представление значения произвольного («ANY») типй должно быть полным кодовым представлением, определяемым на­стоящим стандартом для того типа, к которому относится кодиру­емое значение.

  1. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «ИДЕНТИФИКАТОР
    ОБЪЕКТА»

    1. Кодовое представление значения «идентификатор объек­та» должно быть простым кодовым представлением.

Октеты содержимого должны быть (упорядоченной) по-’

следовательностью следующих друг за другом кодовых представле­ний субидентификаторов (пи. 20.3 и 20.4).

Каждый субидентификатор представляется последовательностью одного или более октетов. Бит 8 каждого октета указывает, являет­ся ли этот октет, последним в последовательности: бит 8 последнего октета должен иметь значение «нуль», а бит 8 каждого предшеству­ющего октета — значение «единица». Битами 7—1 октетов этой по­следовательности кодируется субидентификатор. Эти группы би­тов, последовательно соединенные друг с другом, следует рассмат­ривать как двоичное число без знака, старшим битом которого является бит 7 первого октета, а младшим битом — бит 1 последне­го октета. Субидентификатор должен быть закодирован с помощью наименьшего возможного количества октетов; это означает, что головной октет субидентификатора не должен иметь шестнадцате­ричное значение 80.

  1. Количество субидентификаторов (N) должно быть на еди­ницу меньше количества компонентов идентификатора объекта в кодируемом значении «идентификатор объекта».

  2. Числовое значение первого субидентификатора вычисляет­ся. по двум первым значениям компонентов кодируемого значения «идентификатор объекта» по формуле

(ХХ40)+У,

где X — значение первого компонента идентификатора объек­та, У — значение второго компонента идентификатора объекта.

Примечание. Это «упакованное» представление двух первых компонен­тов идентификатора объекта возможно в силу того, что выделено лишь три зна­чения для ребер, выходящих из корневой вершины, и не более 39 последующих значений — для вершин, соответствующих Х — 0 и.Х=1.

  1. Числовое значение і-го субидентификатора (при 2<=!< <=N) совпадает с числовым значением (і-Н)-го компонента идентификатора объекта.

Пример. Значение типа OBJECT IDENTIFIER {joint-iso-ccitt 100 3}, которое в другой ф'орме записывается в виде {2 100 3),

имеет первый субидентификатор, равный 180, и второй субиден­тификатор, равный 3. Получаемое в результате кодовое представле­ние имеет вид:

OBJECT IDENTIFIER Длина Содержимое 06 03 813403

  1. КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЙ ТИПОВ «СТРОКА ЗНАКОВ»

    1. Значение данных рассматриваемого типа является стро­кой знаков того знакового набора, который был задан при опреде­лении типа с помощью нотации АСН.1.

    2. Каждое значение данных кодируется независимо от-дру­гих значений данных того же типа.

    3. Каждый тип «строка знаков» кодируется так, как если бы он был объявлен как [UNIVERSAL х] IMPLICIT OCTET STRING, где х — номер тега универсального класса, присвоенный данному типу «строка знаков» в настоящем стандарте. Значение этой стро­ки октетов (OCTET STRING) определяется в пп. 21.4 и 21.5.

    4. Если рассматриваемый тип «строка знаков» определен в настоящем стандарте ссылкой на таблицу, в которой перечислены входящие в этот тип знаки (типы Numeric'String и PrintableString), то значение вышеупомянутой строки октетов для кодируемого зна­чения «строка знаков» формируется так же, как для такого же зна­чения типа Visible'String, в соответствии с п. 21.5.

    5. Рассматриваемая строка октетов должна содержать окте­ты, определенные в настоящем стандарте для кодовых представле­ний в 8-битной операционной среде с использованием Esc-после- довательности и знаковых кодов, зарегистрированных в соответст­вии с настоящим стандартом.

      1. Esc-последовательность может использоваться только в том случае, если она задается одним из регистрационных номеров, использовавшихся для определения данного типа «строка знаков» в настоящем стандарте.

      2. Предполагается, что в начале каждой строки задаются и вызываются по терминологии настоящего стандарта регистрацион­ные номера категорий GO и/или СО, и/или С1. Эти регистрацион­ные номера заданы для каждого типа в табл. 2, вместе с соответ­ствующими Esc-последовательностями, использование которых под­разумевается.

      3. Кодовые представления некоторых типов «строка зна­ков» не могут содержать явные Esc-последовательности, тогда как в других случаях любая Esc-последовательность, разрешенная в п. 21.5.1, может присутствовать в любом месте, в том числе в нача­ле кодового представления. В табл. 2 указаны типы, для которых разрешается использование явных Esc-последовательностей.

Таблица 2

Использование Esc-последовательностей

Тип

Прздполага- емый кодовый набор ОО (рс гистраци- онный номер)

Предполагаемый коювый набор СО и С1 (реги­стра циояный номер)

Предполагаемая Esc-последоватєль- ность и перевод ре­гистра (если он применяется)

Допустимы ли явные Esc-по­следователь­ности

NumericString

2

Отсутствует

ESC2/8 4/0 LSO

НЕТ



Продолжение табл. 2

Тип

Предполагае­мый кодовый набор ОО (регистраци­онный номер)

Предполагаемый кодовый набор СО и С1 (реги­страционный номер)

Предполагаемая Вес-последователь­ность и перевод ре­гистра (если он применяется)

Допустимы ли явные Esc-по- следователь- ности

PrintableString

2

Отсутствует

ESC2/8 4/0 LSO

НЕТ

TeletexString (Тб 1 String)

102

106 (СО)

107 (С1)

Esc2/8 7/5 LSO

Esc2/1 4/5

E‘sc2/2 4/8

ДА

Videotexstring

102

1 (СО)

ТЗ (С1)

Esc2/8 7/5 LSO

Esc2/1 4/0

Esc2/2 4/1

• ДА

VisibleString (ISO646String—

2

Отсутствует

ESC2/8 4/0. LSO

НЕТ

lA5String

2

1 (СО)

ESC2/8 4/0 LSO

ESC2/1 4/0

НЕТ

GraficString

2

Отсутствует

ESC2/8 4/0' LSO

ДА

GeneralString

-2

1 (СО)

ESC2/8 4/0 LSO

ESC2/1

ДА



Примечание. Многие из часто используемых знаков (например от А да Z) входят в несколько знаковых наборов с различными регистрационными номе­рами и Esc-последовательностями, В тех случаях, когда строка знаков относит­ся к типу, для которого разрешается использование Esc-последовательностей, воз­можно несколько различных способов его кодирования (п. 5.3).

  1. Использование описателей не допускается, за исключе­нием случаев, когда это явно разрешается пользователем АСН.1.

Примечание. Выбор одного из типов АСН.1 предоставляет ограниченные функциональные возможности, аналогичные функциональным возможностям опи­сателей. Конкретные протоколы прикладного уровня могут либо предписывать передачу описателей в составе других протокольных элементов, либо детально определять способ их использования.

Пример. Пусть определение типа в нотации АСН.1 имеет вид: Name : : = VisibleString.

Тогда значение этого типа

«Jones»

может быть закодировано (в простой форме) так:

VisibleString Длина Содержимое

1А 05 4A6F6E6573

либо (в составной форме, с явным заданием длины) как:

VisibleString ЗА

Длина 09

Содержимое

Строка октетов

Длина

Содержимое

04

03

4A6F6E

Строка октетов

Длина

Содержимое

04

02

6573


либо (в составной форме, с неявным заданием длины) как:

VisibleString

Длина

Содержимое

ЗА

80

30

Строка октетов

Длина

Содержимое

04

03

4A6F6E

Строка октетов

Длина

Содержимое

04

02

6573

Конец содержимого Длина

00 00



В приведенном выше примере проиллюстрированы три из мно­гих-возможных форматов кодового представления, которые отп­равитель может использовать по своему выбору. Получатели дол­жны обрабатывать кодовые представления всех допустимых фор­матов (п. 5.3).

  1. КОДОВЫЕ ПРЕДСТАВЛЕНИЯ ЗНАЧЕНИЙ
    ОБЩЕУПОТРЕБИТЕЛЬНЫХ ТИПОВ АСН.1

Кодовое представление получается в результате применения правил, определенных в настоящем стандарте, в соответствии с определением типа.

  1. ИСПОЛЬЗОВАНИЕ КОДОВЫХ ПРЕДСТАВЛЕНИЙ ПРИ
    ОПРЕДЕЛЕНИИ СИНТАКСИСА ПЕРЕДАЧИ

    1. Ссылка на правила кодирования, определенные настоя­щим стандартом, и их применение дают возможность определить для каждого значения данных какого-либо одного типа АСН.1 ко­довое представление в виде единой строки октетов, содержащей в себе признак окончания и однозначно задающей закодированное значение.