Товары в корзине: 0 шт Оформить заказ
Стр. 1 

221 страница

Определяет нотацию для спецификации кодирования типов АСН.1 или частей типов. В стандарте предусмотрено несколько механизмов такой спецификации, в том числе: - прямая спецификация кодирования с помощью стандартизованной нотации; - спецификация кодирования путем ссылки на стандартизованные правила кодирования; - спецификация кодирования типа АСН.1 путем ссылки на некоторую структуру кодирования; - спецификация кодирования с использованием не-ECN нотации. В стандарте предусмотрены также средства для связи спецификаций кодирования с определениями типов, к которым кодирование должно применяться.

 Скачать PDF

Идентичен ISO/IEC 8825-3:2008

Оглавление

1 Область применения

2 Нормативные ссылки

     2.1 Идентичные международные стандарты

     2.2 Дополнительные ссылки

3 Термины и определения

     3.1 Определения терминов по АСН.1

     3.2 Определения терминов, специфичных для ECN

4 Сокращения

5 Определение синтаксиса ECN

6 Соглашения о кодировании и нотация

7 Набор знаков ECN

8 Лексические элементы ECN

     8.1 Справочные имена объектов кодирования

     8.2 Справочные имена набора объектов кодирования

     8.3 Справочные имена классов кодирования

     8.4 Элементы «зарезервированное слово»

     8.5 Элементы «зарезервированное имя класса кодирования»

     8.6 Не-ECN элемент

9 Понятия ECN

     9.1 Спецификация нотации управления кодированием (ECN)

     9.2 Классы кодирования

     9.3 Структуры кодирования

     9.4 Объекты кодирования

     9.5 Наборы объектов кодирования

     9.6 Определение новых классов кодирования

     9.7 Определение объектов кодирования

     9.8 Дифференциальное кодирование-декодирование

     9.9 Факультативные возможности в кодовых последовательностях

     9.10 Свойства объектов кодирования

     9.11 Параметризация

     9.12 Руководители

     9.13 Общие аспекты кодирования

     9.14 Идентификация информационных элементов

     9.15 Ссылочные поля и определители

     9.16 Классы и структуры замены

     9.17 Отображение абстрактных значений в поля структур кодирования

     9.18 Преобразователи и композиции преобразования

     9.19 Содержимое модулей определения кодирования

     9.20 Содержимое модуля компоновки кодирования

     9.21 Определение способов кодирования для простейших классов кодирования

     9.22 Приложение кодирований

     9.23 Комбинированный набор объектов кодирования

     9.24 Точка приложения

     9.25 Условные кодирования

     9.26 Другие условия для применения кодирований

     9.27 Управление кодированием для открытого типа

     9.28 Изменения международных стандартов об АСН.1

10 Определения классов кодирования, объектов кодирования и наборов объектов кодирования

11 Кодирование типов АСН.1

     11.1 Общие положения

     11.2 Предопределенные классы кодирования, используемые для неявно генерируемых структур кодирования

     11.3 Упрощение и расширение нотации АСН.1 для целей кодирования

     11.4 Неявно генерируемые структуры кодирования

12 Модуль компоновки кодирования (ELM)

     12.1 Структура ELM

     12.2 Типы кодирования

13 Применение кодирований

     13.1 Общие положения

     13.2 Комбинированный набор объектов кодирования и его применение

14 Модуль определения кодирования (EDM)

15 Раздел переименований

     15.1 Явно генерируемые и экспортируемые структуры

     15.2 Изменения имен

     15.3 Определение области для изменений имени

16 Присвоения классов кодирования

     16.1 Общие положения

     16.2 Определение структуры кодирования

     16.3 Структура кодирования альтернативы

     16.4 Структура кодирования повторения

     16.5 Структура кодирования конкатенации

17 Присвоения объектов кодирования

     17.1 Общие положения

     17.2 Кодирование с определенным синтаксисом

     17.3 Кодирование с наборами объектов кодирования

     17.4 Кодирование с использованием отображений значения

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

     17.6 Дифференциальное кодирование-декодирование

     17.7 Факультативные возможности кодирования

     17.8 Не-ECN определение объектов кодирования

18 Назначения наборов объектов кодирования

     18.1 Общие сведения

     18.2 Предопределяемые наборы объектов кодирования

19 Отображение значений

     19.1 Общие положения

     19.2 Отображение с помощью явных значений

     19.3 Отображение с помощью полей сопоставления

     19.4 Отображение с помощью объектов кодирования #TRANSFORM

     19.5 Отображение с помощью упорядочения абстрактных значений

     19.6 Отображение с помощью распределения значений

     19.7 Отображение целочисленных значений в биты

20 Определение объектов кодирования с использованием определенного синтаксиса

21 Типы, используемые в спецификации определенного синтаксиса

     21.1 Тип Unit

     21.2 Тип EncodingSpaceSize

     21.3 Тип EncodingSpaceDetermination

     21.4 Тип UnusedBitsDetermination

     21.5 Тип OptionalityDetermination

     21.6 Тип AlternativeDetermination

     21.7 Тип RepetitionSpaceDetermination

     21.8 Тип Justification

     21.9 Тип Padding

     21.10 Типы Pattern и Non-Null-Pattern

     21.11 Тип RangeCondition

     21.12 Тип Comparison

     21.13 Тип SizeRangeCondition

     21.14 Тип ReversalSpecification

     21.15 Тип ResultSize

     21.16 Тип HandleValueSet

     21.17 Тип IntegerMapping

22 Обычно используемые группы признаков кодирования

     22.1 Спецификация замены

     22.2 Спецификация предварительного выравнивания и заполнения

     22.3 Спецификация начального указателя

     22.4 Спецификация пространства кодирования

     22.5 Определение факультативных возможностей

     22.6 Определение альтернативы

     22.7 Спецификация пространства повторения

     22.8 Заполнение и выравнивание значения

     22.9 Спецификация идентификационного описателя

     22.10 Спецификация конкатенации

     22.11 Спецификация кодирования вложенного типа

     22.12 Спецификация реверсии битов

23 Спецификация определенного синтаксиса для классов «битовое поле» и «конструктор»

     23.1 Определение объектов кодирования для классов в категории «альтернативы»

     23.2 Определение объектов кодирования для классов в категории «цепочка битов»

     23.3 Определение объектов кодирования для классов в категории «булева»

     23.4 Определение объектов кодирования для классов в категории «цепочка знаков»

     23.5 Определение объектов кодирования для классов в категории «конкатенация»

     23.6 Определение объектов кодирования для классов в категории «целочисленная»

     23.7 Определение объектов кодирования для класса #CONDITIONAL-INT

     23.8 Определение объектов кодирования для классов в «вырожденной» категории

     23.9 Определение объектов кодирования для классов в категории «цепочка октетов»

     23.10 Определение объектов кодирования для классов в категории «открытый тип»

     23.11 Определение объектов кодирования для классов в категории «факультативные возможности»

     23.12 Определение объектов кодирования для классов в категории «pad»

     23.13 Определение объектов кодирования для классов в категории «повторение»

     23.14 Определение объектов кодирования для класса #CONDITIONAL-REPETITION

     23.15 Определение объектов кодирования для классов в категории «тег»

     23.16 Определение объектов кодирования для классов в других категориях

24 Спецификация определенного синтаксиса для класса кодирования #TRANSFORM

     24.1 Сводный перечень признаков кодирования и определенного синтаксиса

     24.2 Источник и цель преобразователей

     24.3 Преобразователь int-to-int

     24.4 Преобразователь bool-to-bool

     24.5 Преобразователь bool-to-int

     24.6 Преобразователь int-to-bool

     24.7 Преобразователь int-to-chars

     24.8 Преобразователь int-to-bits

     24.9 Преобразователь bits-to-int

     24.10 Преобразователь char-to-bits

     24.11 Преобразователь bits-to-char

     24.12 Преобразователь bit-to-bits

     24.13 Преобразователь bits-to-bits

     24.14 Преобразователь chars-to-composite-char

     24.15 Преобразователь bits-to-composite-bits

     24.16 Преобразователь octets-to-composite-bits

     24.17 Преобразователь composite-char-to-chars

     24.18 Преобразователь composite-bits-to-bits

     24.19 Преобразователь composite-bits-to-octets

     25 Полные кодирования и класс #OUTER

     25.1 Признаки кодирования, синтаксис и цель для класса #OUTER

     25.2 Действия кодера для #OUTER

     25.3 Действия декодера для #OUTER

Приложение А (обязательное) Добавление к ИСО/МЭК 8824-1

Приложение В (обязательное) Добавление к ИСО/МЭК 8824-2

Приложение С (обязательное) Добавление к ИСО/МЭК 8824-4

Приложение D (справочное) Примеры

Приложение Е (справочное) Поддержка кодовых последовательностей Хаффмана

Приложение F (справочное) Дополнительная информация о нотации управления кодированием (ECN)

Приложение G (справочное) Сводный перечень нотации ECN

Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов национальным стандартам

 

221 страница

Дата введения01.11.2017
Добавлен в базу05.05.2017
Актуализация01.01.2021

Этот ГОСТ находится в:

Организации:

07.11.2016УтвержденФедеральное агентство по техническому регулированию и метрологии1597-ст
РазработанФГУП ГосНИИ ТЕСТ
РазработанООО ИАВЦ
ИзданСтандартинформ2016 г.

Information technology. АСН.1 encoding rules Part 3. Specification of Encoding Control Notation (ECN)

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17
Стр. 18
стр. 18
Стр. 19
стр. 19
Стр. 20
стр. 20
Стр. 21
стр. 21
Стр. 22
стр. 22
Стр. 23
стр. 23
Стр. 24
стр. 24
Стр. 25
стр. 25
Стр. 26
стр. 26
Стр. 27
стр. 27
Стр. 28
стр. 28
Стр. 29
стр. 29
Стр. 30
стр. 30

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

ГОСТР

исо/мэк

8825-3—

2016

НАЦИОНАЛЬНЫЙ

СТАНДАРТ

РОССИЙСКОЙ

ФЕДЕРАЦИИ

Информационная технология ПРАВИЛА КОДИРОВАНИЯ АСН.1

Часть 3

Спецификация нотации контроля кодирования (ECN)

(ISO/IEC 8825-3:2008, ЮТ)

Издание официальное

Москва

Стандартинформ

2016


Предисловие

1    ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ»), Обществом с ограниченной ответственностью «Информационно-аналитический центр» (ООО ИАВЦ) на основе собственного перевода на русский язык англоязычной версии международного стандарта, указанного в пункте 4

2    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационные технологии»

3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 7 ноября 2016 г. № 1597-ст

4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 8825-3:2008 «Информационная технология. Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)» [ISO/IEC 8825-3:2008 «Information technology — АСН.1 encoding rules — Part 3: Specification of Encoding Control Notation (ECN)», IDT],

При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДА

5    ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О Стандартизации в Российской Федерации». Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)

© Стандартинформ, 2016

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии

ГОСТ Р ИСО/МЭК 8825-3—2016

3.2.35    факультативное битовое поле (optional bit-field): Битовое поле, которое иногда вставляется (для кодирования абстрактного значения), а иногда опускается.

3.2.36    положительное целочисленное значение (positive integer value): Значение, большее нуля.

3.2.37    определитель наличия (presence determinant): Битовое поле, которое указывает, присутствует ли факультативное битовое поле.

3.2.38    простейший (примитивный) класс (primitive class): Класс кодирования, который не является структурой кодирования и не может быть отнесен к другому классу (см. 16.1.14).

3.2.39    рекурсивное определение (справочного имени) [recursive definition (of a reference name)]: Справочное имя, для которого вычисление этого справочного имени или руководителя для определения справочного имени требует вычисления исходного справочного имени.

Примечание — Рекурсивное определение класса кодирования (включая структуру кодирования) или объекта кодирования разрешается (но см. 17.1.4). Рекурсивное определение набора объектов кодирования запрещается в 18.1.3.

3.2.40    рекурсивная реализация (параметризованного справочного имени) [recursive instantiation (of a parameterized reference name)]: Создание справочного имени, для которого вычисление реальных параметров требует вычисления исходного справочного имени.

Примечание — Рекурсивное определение класса кодирования (включая структуру кодирования) или объекта кодирования разрешается (но см. 17.1.4). Рекурсивное определение набора объектов кодирования запрещается в 18.1.3.

3.2.41    структура замены (replacement structure): Параметризованная структура, используемая для замены некоторых или всех частей конструкции перед кодированием этой конструкции.

3.2.42    саморазграничивающее кодирование (self-delimiting encoding): Кодирование набора абстрактных значений, при котором отсутствует такое абстрактное значение, которое имеет кодовую последовательность, являющуюся начальной субцепочкой кодовой последовательности другого абстрактного значения в этом наборе.

Примечание — Это охватывает только кодовые последовательности с фиксированной длиной для ограниченного целого числа, а также кодовые последовательности, описанные обобщенно как «кодовые последовательности Хаффмана» (см. приложение Е).

3.2.43    простое справочное имя (simple reference name): Ссылка на класс, объект или набор объектов кодирования, которая не содержит ни имени модуля EDM, в котором определен этот класс, объект или набор объектов кодирования, ни (в случае неявного генерируемого класса кодирования) имени модуля АСН.1, в котором он был генерирован.

Примечание — Простое справочное имя может использоваться лишь в случае, когда ссылка на класс кодирования недвусмысленна, в остальных случаях в теле модуля должно использоваться полностью определенное имя (см. 3.2.24).

3.2.44    условие диапазона размера (size range condition): Условие по наличию ограничений на действующий размер поля «цепочка» или «повторение» (а также включение нуля в ограничение и/или разрешение нескольких размеров), которое, если оно удовлетворяется, означает, что должны применяться определенные правила кодирования.

3.2.45    руководитель источника (или класс источника) [source governor (or source class)]: Руководитель, который определяет нотацию для указанных абстрактных значений, связанных с классом источника, при отображении их в класс цели.

3.2.46    начальный указатель (start pointer): Вспомогательное поле, указывающее на присутствие или отсутствие какого-либо факультативного битового поля, а в случае присутствия также указывающее смещение от текущего положения до этого битового поля.

3.2.47    руководитель цели (или класс цели) [target governor (or target class)]: Руководитель, который определяет нотацию для указанных абстрактных значений, связанных с классом цели, при отображении в них из класса источника.

3.2.48    тип (типы) верхнего уровня [top-level type(s)]: Такой тип (типы) АСН.1 в приложении, который используется этим приложением способом, отличающимся от способа для определения компонентов других типов АСН.1.

Примечания

1 Типы верхнего уровня могут также использоваться (но обычно не используются) в качестве компонентов других типов АСН. 1.

5

2 Типы верхнего уровня иногда называют «сообщениями приложения» или «протокольными блоками данных (PDU)». Эти типы обычно специально обрабатываются инструментами, так как они образуют в языке программирования верхний уровень тех структур данных, которые предоставляются приложению.

3.2.49    преобразователи (transforms): Объекты кодирования класса #TRANSFORM, которые указывают, что кодирование абстрактных значений, связанных с некоторым классом (или с композициями преобразования — см. 3.2.50), должно быть кодированием других абстрактных значений, связанных с тем же или с другим классом (или композициями преобразования).

Примечание — Преобразователи могут использоваться, например, для указания простых арифметических операций над значениями целых чисел либо для отображения значений целых чисел в цепочки знаков или цепочки битов.

3.2.50    композиции преобразования (transform composites): Упорядоченный список элементов, которые сами могут быть источником или результатом преобразователей.

Примечание — Необходимо, чтобы все такие элементы имели одну и туже классификацию (см. 9.18.2).

3.2.51    кодирование значения (value encoding): Способ использования пространства кодирования для представления абстрактного значения (см. 9.21.5).

4    Сокращения

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

АСН.1 — абстрактно-синтаксическая нотация 1;

BCD - двоично-кодированное десятичное число;

BER — базовые правила кодирования АСН.1;

CER — канонические правила кодирования АСН.1;

DER — выделенные правила кодирования АСН.1;

ECN — нотация управления кодированием для АСН.1;

EDM — модуль определения кодирования;

ELM — модуль компоновки кодирования;

PDU — протокольный блок данных;

PER — уплотненные правила кодирования АСН.1.

5    Определение синтаксиса ECN

5.1    В настоящем стандарте применяется соглашение о нотации, определенное в разделе 5 ИСО МЭК 8824-1.

5.2    В настоящем стандарте применяется нотация для классов информационных объектов, определенная в ИСО/МЭК 8824-2 и уточненная в приложении В.

5.3    В настоящем стандарте приведены ссылки на продукции, определенные в ИСО/МЭК 8824-1 (с уточнениями из приложения А), ИСО/МЭК 8824-2 (с уточнениями из приложения В) и ИСО/МЭК 8824-4 (с уточнениями из приложения С).

6    Соглашения о кодировании и нотация

6.1    В настоящем стандарте определены значения каждого объекта в кодовой последовательности при помощи терминов «бит старшего порядка» и «бит младшего порядка».

Примечание — В спецификациях нижнего уровня используется такая же нотация для определения порядка передачи битов в последовательной линии или для прикрепления битов к параллельным каналам.

6.2    В настоящем стандарте биты в октете пронумерованы с 8 до 1, причем бит 8 является «битом старшего порядка», а бит 1 — «битом младшего порядка».

6.3    В настоящем стандарте кодирование определяется в виде цепочки битов, которая начинается «начальным битом» и заканчивается «конечным битом». При передаче первые восемь битов этой цепочки битов, начинающейся с «начального бита», помещаются в первый передаваемый октет, в котором «начальный бит» будет «битом старшего порядка» у этого октета. Следующие восемь битов помещаются в следующий октет и т. д. Если в кодируемой последовательности число битов

6

ГОСТ Р ИСО/МЭК 8825-3—2016

не кратно восьми, то оставшиеся биты передаются так, как будто имеются 8 битов перед последующим октетом.

Примечание — Полная кодируемая последовательность ECN не обязательно всегда кратна восьми битам, но спецификация ECN может указывать на добавление заполняющих битов для обеспечения этого свойства.

6.4 В настоящем стандарте на рисунках «начальный бит» всегда показан слева.

7 Набор знаков ECN

7.1    Использование термина «знак» в настоящем стандарте относится к знакам, определенным в ИСО/МЭК 10646, причем полная поддержка всех возможных спецификаций ECN может потребовать представления всех этих знаков.

7.2    В спецификациях ECN, за исключением комментариев (определенных в ИСО/МЭК 8824-1, подраздел 12.6), не-ECN определений объектов кодирования (см. 17.8) и значений цепочек (строк) знаков, используются только знаки, перечисленные в таблице 1.

7.3    Лексические элементы, определенные в разделе 8, содержат последовательность знаков, перечисленных в таблице 1.

Таблица 1—Знаки ECN

Примечание — Дополнительные ограничения на разрешенные знаки для каждого лексического элемента указываются в разделе 8.

0 до 9

(ЦИФРА НУЛЬ ... ЦИФРА 9)

Адо Z

(ЛАТИНСКИЕ ПРОПИСНЫЕ БУКВЫ ОТ А ДО Z)

а до z

(ЛАТИНСКИЕ СТРОЧНЫЕ БУКВЫ ОТ А ДО Z)

н

(КАВЫЧКИ)

#

(ЗНАК НОМЕРА)

&

(СОЮЗ «И»)

1

(АПОСТРОФ)

(

(ЛЕВАЯ КРУГЛАЯ СКОБКА)

)

(ПРАВАЯ КРУГЛАЯ СКОБКА)

>

(ЗАПЯТАЯ)

(ТОЧКА)

-

(ДЕФИС, МИНУС)

(ДВОЕТОЧИЕ)

(ТОЧКА С ЗАПЯТОЙ)

<

(ЗНАК «МЕНЬШЕ, ЧЕМ»)

=

(ЗНАК РАВЕНСТВА)

>

(ЗНАК «БОЛЬШЕ, ЧЕМ»)

{

(ЛЕВАЯ ФИГУРНАЯ СКОБКА)

1

(ВЕРТИКАЛЬНАЯ ЧЕРТА)

>

(ПРАВАЯ ФИГУРНАЯ СКОБКА)

7.4    Типографский шрифт, размер, цвет, яркость и другие характеристики отображения не имеют значения.

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

7

8 Лексические элементы ECN

В дополнение к лексическим элементам, определенным в ИСО/МЭК 8824-1 [раздел 12], в настоящем стандарте использованы лексические элементы, которые определяются в последующих подразделах. В настоящем разделе применяются общие правила, определенные в ИСО/МЭК 8824-1, подраздел 12.1.

Примечание — В приложении G перечислены все лексические элементы и все продукции, использованные в настоящем стандарте, с указанием тех, которые определены в ИСО/МЭК 8824-1, ИСО/МЭК 8824-2 и ИСО/МЭК 8824-4.

8.1    Справочные имена объектов кодирования

Имя элемента — encodingobjectreference

Элемент «encodingobjectreference» содержит последовательность знаков, указанную для «valuereference» в ИСО/МЭК 8824-1, подраздел 12.4. При анализе примера использования этой нотации элемент «encodingobjectreference» различается от «identifier» согласно контексту, в котором он появляется.

8.2    Справочные имена набора объектов кодирования

Имя элемента — encodingobjectsetreference

Элемент «encodingobjectsetreference» содержит последовательность знаков, указанную для «typereference» в ИСО/МЭК 8824-1, подраздел 11.2. Она не должна быть какой-либо последовательностью знаков из перечисленных в 8.4.

8.3    Справочные имена классов кодирования

Имя элемента — encodingclassreference

Элемент «encodingclassreference» содержит знак «#», за которым следует последовательность знаков, указанная для «typereference» в ИСО/МЭК 8824-1, подраздел 11.2. Она не должна быть какой-либо последовательностью знаков из перечисленных в 8.5, за исключением применения в списке им-портов EDM (см. в ИСО/МЭК 8824-1, пункт 13.20 с учетом изменений из А.1) или в «ExternalEncodingCI

assReference» (см. примечание в 14.11).

8.4    Элементы «зарезервированное слово»

Имена элементов «зарезервированное слово»:

ALL

FIELDS

PER-BASIC-UNALIGNED

AS

FROM

PER-CANONICAL-ALIGNED

BEGIN

GENERATES

PER-CANONICAL-UNALIGNED

BER

IF

PLUS-INFINITY

BITS

IMPORTS

REFERENCE

BY

IN

REMAINDER

CER

LINK-DEFINITIONS

RENAMES

COMPLETED

MAPPING

SIZE

DECODE

MAX

STRUCTURE

DER

MIN

STRUCTURED

DISTRIBUTION

MINUS-INFINITY

TO

ENCODE

NON-ECN-BEGIN

TRANSFORMS

ENCODING-CLASS

NON-ECN-END

TRUE

ENCODE-DECODE

NULL

UNION

ENCODING-DEFINITIONS

OPTIONAL-ENCODING

USE

END

OPTIONS

USE-SET

EXCEPT

ORDERED

VALUES

EXPORTS

FALSE

OUTER

PER-BASIC-ALIGNED

WITH

ГОСТ Р ИСО/МЭК 8825-3—2016

Элементы с вышеприведенными именами должны содержать указанную последовательность знаков в имени.

Примечание — Слова (см. в ИСО/МЭК 8824-2, подраздел 7.9), используемые в определении классов кодирования (в операторе «WITH SYNTAX») в разделе 23, не являются зарезервированными словами (см. также В.14).

8.5 Элементы «зарезервированное имя класса кодирования»

Имена элементов «зарезервированное имя класса кодирования»:

#ALTERNATIVES

#ENUMERATED

#PAD

#BITS

#EXTERNAL

#PrintableString

#BIT-STRING

#General izedTime

#REAL

#BMPString

#GeneralString

#RELATIVE-OID

#BOOL

#GraphicString

«REPETITION

#BOOLEAN

#IA5String

«SEQUENCE

#CHARACTER-STRING

#INT

«SEQUENCE-OF

#CHARS

INTEGER

«SET

#CHOICE

#NUL

«SET-OF

#CONCATENATION

#NULL

«TAG

#CONDITIONAL-INT

#NumericString

«TeletexString

#CONDITIONAL-REPETITION

#OBJECT-IDENTIFIER

«TIME-OF-DAY

#DATE

#ObjectDescriptor

«TRANSFORM

#DATE-TIME

#OCTETS

«UniversalString

#DURATION

#OCTET-STRING

«UTCTime

#EMBEDDED-PDV

#OPEN-TYPE

#UTF8String

#ENCODINGS

#OPTIONAL

«Videotexstring

#OUTER

«VisibleString

Элементы с вышеприведенными именами должны содержать указанную последовательность знаков в имени.

8.6 He-ECN элемент

Имя элемента — anystringexceptnonecnend

Элемент «anystringexceptnonecnend» содержит один или несколько знаков из набора знаков ИСО/ МЭК 10646, но не должен быть последовательностью знаков NON-ECN-END и не должен содержать внутри эту последовательность знаков.

9 Понятия ECN

В настоящем разделе описаны главные понятия, лежащие в основе настоящего стандарта.

9.1    Спецификация нотации управления кодированием (ECN)

9.1.1    Спецификации ECN содержат один или несколько модулей определения кодирования (EDM), которые определяют правила кодирования для типов АСН.1, и один модуль компоновки кодирования (ELM), который применяет эти правила кодирования к типам АСН.1.

9.1.2    Наиболее важная часть ECN — это понятие определения структуры кодирования. АСН.1 используется для определения составных абстрактных значений с помощью простейших типов и конструкторов. Таким же образом составные кодовые последовательности могут определяться с помощью похожей нотации, где конструкционные механизмы используются для комбинирования простых битовых полей в более сложные кодовые последовательности и в конечном счете в полные сообщения. Это называется определением структуры кодирования. При использовании ECN совместно с АСН.1 необходимо, в принципе:

а) определить абстрактный синтаксис (набор абстрактных значений, подлежащих передаче и их семантику), а также

9

b)    определить структуру кодирования (структуру полей), которая используется для переноса этих абстрактных значений, а также

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

d)    определить кодирование для каждого поля структуры кодирования, а также механизмы для распознавания повторений полей и распознавания альтернатив и т. д.

9.1.3    Вышеприведенный процесс обычно используется на начальных этапах. Вначале определение АСН.1 дает подробное описание конкретного абстрактного синтаксиса. Из этого автоматически генерируется предварительная структура кодирования (теоретически, внутри модуля АСН.1). Эта неявно генерируемая структура содержит только те поля, которые переносят семантику приложения, и не содержит полей для таких понятий, как определение длины, выбор альтернативы и т. п.

9.1.4    Эта структура может быть трансформирована с помощью нескольких механизмов в структуру полей, которая фактически нужна, включая поля, необходимые для поддержки работы декодера (определители). Эти механизмы в целом используют некоторую форму замены простого поля, переносящего прикладную семантику, на более сложную структуру. Такие замены образуют важную часть спецификации ECN.

9.1.5    Мы можем позже определить объекты кодирования для каждого поля в окончательной структуре. Это определит не только кодирование полей, но и способ, которым одно поле определяет длину, например, другого поля или содержит его разрешенные факультативные возможности.

9.1.6    Вышеприведенные определения расположены в модулях определения кодирования (EDM). Последним этапом является приложение набора определенных объектов кодирования к окончательной структуре кодирования с целью полного определения кодовой последовательности. Это делается в модуле компоновки кодирования (ELM).

9.2 Классы кодирования

9.2.1    Класс кодирования — это неявный признак всех типов АСН.1, который представляет набор всех возможных спецификаций кодирования для конкретного типа. Он дает ссылку, которая позволяет модулям определения кодирования определять правила кодирования для полей структуры кодирования, соответствующие этому типу. Имена классов кодирования начинаются со знака «#».

Пример — Правила кодирования для предопределенного типа АСН.1 INTEGER определяются путем ссылки на класс кодирования #INTEGER, а правила кодирования для определенного пользователем типа «Му-Туре» определяются путем ссылки на класс кодирования #Му-Туре.

9.2.2    Имеются несколько семейств классов кодирования.

9.2.2.1    Предопределенные классы кодирования

Имеются предопределенные классы кодирования, например, с именами #INTEGER и #BOOLEAN. Они позволяют определять конкретные кодирования для простейших типов АСН.1. Имеются также предопределенные классы кодирования для кодирования конструкций, таких как #SEQUENCE, #SEQUENCE-OF и #СН01СЕ (см. также 9.3.2), а также для определения правил кодирования при обработке факультативных возможностей с помощью #OPTIONAL. Кодирование тегов поддерживается классом #TAG. Наконец, имеются некоторые предопределенные классы (#OUTER, #TRANSFORM и другие), которые позволяют определять процедуры кодирования, составляющие часть процесса кодирования-декодирования, но не относящиеся прямо к какому-либо конкретному битовому полю или к конструкции АСН.1.

9.2.2.2    Классы кодирования для неявно генерируемых структур кодирования

Они имеют имена, содержащие знак «#», за которым следует «typereference», появившаяся в «TypeAssignment» в модуле АСН.1. Такие классы кодирования неявно генерируют каждый раз, когда «typereference» (непараметризованная) присваивается в модуле АСН.1, и могут импортироваться в модуль определения кодирования, чтобы позволить определение конкретных кодовых последовательностей для соответствующего типа АСН.1. Эти классы кодирования представляют структуру кодирования АСН.1 и формируются из предопределенных классов кодирования, отражая структуру определения типа АСН.1.

9.2.2.3    Классы кодирования для определенных пользователей структур кодирования

Эти классы кодирования определяются пользователем ECN путем указания структуры кодирования (см. 9.3) в виде некоторой структуры, объединяющей битовые поля и конструкторы кодирования. Эти структуры кодирования аналогичны неявно генерируемым структурам кодирования, но пользователь ECN полностью контролирует их структуру. Эти классы позволяют определять комплексные

ю

ГОСТ Р ИСО/МЭК 8825-3—2016

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

9.2.2.4 Классы кодирования для явно генерируемых структур кодирования

Эти классы кодирования образуются из неявно генерируемых структур кодирования путем выборочного изменения имен определяемых классов, чтобы указать места, в которых нужны специализированные кодовые последовательности для факультативных возможностей («опций»), окончаний «последовательностей-из» и т. п.

9.3 Структуры кодирования

9.3.1    Определения структур кодирования имеют некоторое сходство с определениями типов АСН.1, они имеют имя, начинающееся знаком «#» и содержащее далее прописные буквы. Каждое определение структуры кодирования определяет новый класс кодирования (набор всех возможных кодовых последовательностей этой структуры кодирования). Структуры кодирования формируются из полей, которые являются либо предопределенными классами кодирования, либо именами других структур кодирования, составленных с помощью конструкторов кодирования (которые представляют набор всех возможных правил кодирования, поддерживающих свой тип конструкционного механизма, и поэтому называются классами кодирования) (см. в D.2.8.4 пример определения структуры кодирования).

9.3.2    Самыми основными конструкторами кодирования являются #CONCATENATION, #REPETITION и #ALTERNATIVES, приблизительно соответствующие типам АСН.1 sequence [«последовательность»] (и set [«множество»]), sequence-of (и set-of [«множество-из»]), а также choice [выборочный]. Имеется также класс кодирования #OPTIONAL, который представляет факультативное присутствие кодовых последовательностей, приблизительно соответствующих маркерам АСН.1 DEFAULT и OPTIONAL.

9.3.3    Определение структуры кодирования определяет класс кодирования, основанный на структуре. Такие классы не могут иметь те же имена, что и классы кодирования, которые импортированы в модуль (см. в ИСО/МЭК 8824-1, пункт 13.13 с учетом изменений из А.1 настоящего стандарта).

9.3.4    Имена структур кодирования могут экспортироваться и импортироваться между модулями определения кодирования и использоваться каждый раз, когда требуется имя класса кодирования в группе категорий битовых полей (см. 9.6).

9.3.5    Значения типов АСН.1 (простейших или определенных пользователем) могут быть отображены в поля структуры кодирования, а правила кодирования для этой структуры затем обеспечат кодовые последовательности этого типа АСН.1 (значения, отображенные в структуры кодирования, могут затем отображаться в поля или более сложные структуры кодирования). Это обеспечивает весьма мощный механизм для определения сложных правил кодирования.

9.4 Объекты кодирования

9.4.1    Объекты кодирования представляют конкретное определение правил кодирования для заданного класса кодирования. Обычно правила относятся к конкретным битам, которые должны вырабатываться, но могут также определять процедуры, относящиеся к кодированию и декодированию, например, способ указания на присутствие или отсутствие факультативных компонентов.

9.4.2    Чтобы полностью определить кодирование типов АСН.1 (обычно типов верхнего уровня для какого-либо приложения), необходимо определить (или получить из стандартизованных правил кодирования) объекты кодирования для всех классов, которые соответствуют компонентам этих типов АСН.1, и для используемых конструкторов кодирования.

9.4.3    Для традиционных протоколов это может делаться путем определения отдельного объекта кодирования для каждого компонента типа АСН.1, но более общую возможность дает использование объектов кодирования, определяемых с помощью стандартизованных правил кодирования (например, PER).

9.4.4    Хотя спецификации кодирования BER и PER появились раньше, чем ECN, внутри модели ECN они просто определяют объекты кодирования для всех классов, соответствующих простейшим типам и конструкторам АСН.1 (то есть для всех предопределенных классов кодирования). BER и PER рассматриваются также при создании объектов кодирования для классов кодирования, применяемых в определении структур кодирования (см. 18.2).

9.5 Наборы объектов кодирования

9.5.1 Объекты кодирования могут группироваться в наборы таким же образом, как информационные объекты в АСН.1, причем имеются такие наборы объектов кодирования, которые применяются

11

(в ELM) к типам АСН.1 для определения их кодирования. Руководителем, применяемым при формировании таких наборов объектов кодирования, является зарезервированное слово #ENCODINGS (см. пример в D.1.14).

9.5.2    Фундаментальное правило конструирования набора объектов кодирования заключается в том, что любой набор может содержать только один объект кодирования заданного класса кодирования (см. также 9.6.2). Поэтому не будет двусмысленности, когда набор объектов кодирования применяется к типу для определения его кодирования.

9.5.3    Наборы предопределенных объектов кодирования имеются для всех вариантов BER и PER, причем они могут использоваться для полных наборов, определенных пользователем объектов кодирования.

9.6 Определение новых классов кодирования

9.6.1    Те, кто осведомлен об АСН.1, знают, что присвоение типа может использоваться для создания новых имен (новых типов), например, из типов INTEGER и BOOLEAN. Новые имена определяют типы, которые будут теми же INTEGER или BOOLEAN, но несут другую семантику. Это понятие расширено в ECN, чтобы позволить создание (в присвоении класса — см. 16.1.1) новых имен (новых классов) для конструкторов, таких как #SEQUENCE. Новые имена определяют классы, которые выполняют такие же функции при структурировании кодовых последовательностей (например, при конкатенации), но должны иметь другие объекты кодирования, применяемые к ним. Новое имя класса, присвоенное некоторому старому классу, сохраняет определенные характеристики этого старого класса. Итак, присвоение, например, «#My-Sequence ::= #SEQUENCE» создает новое имя класса #My-Sequence, которое все еще является некоторым классом кодирования, относящимся к конкатенации компонентов. Мы говорим, что такие классы кодирования имеют одну и ту же категорию.

9.6.2    Если новый класс кодирования создан из существующего класса кодирования, то объекты кодирования как старого, так и нового классов кодирования могут появляться в одном наборе объектов кодирования.

9.6.3    Все предопределенные классы кодирования получаются от одного класса из небольшого числа простейших классов кодирования. Поэтому #SEQUENCE и #SET оба получены от класса CONCATENATION, классы #INTEGER и #ENUMERATED получены от класса #INT, а классы для различных типов АСН.1 «цепочка знаков» все получены от класса #CHARS. Структура кодирования (например, неявно генерируемая из некоторого типа АСН.1) может содержать смесь разных классов, которые все получены из одного и того же простейшего класса и которые позволяют разные кодирования, применяемые, например, k#SEQUENCE и #SET.

9.6.4    Часто удобно вложить классы кодирования в категории, основанные на простейшем классе, из которого они получены. Поэтому мы говорим, что #INTEGER, #ENUMERATED и #INT (и любой класс, полученный из них в операторе присвоения класса, таком как «#My-int ::= #INT») находятся в категории «целочисленная». Имеются также группы категорий, которые содержат весьма различные классы, имеющие некоторые одинаковые характеристики. Поэтому любой класс, который может иметь абстрактные значения, прямо связанные с ним, и который, следовательно, вырабатывает биты при кодировании, будет находиться, можно сказать, в группе категорий «битовое поле». Поэтому все классы, которые находятся в категории «целочисленная», или «булева», или «цепочка знаков», относятся к группе категорий «битовое поле». Классы, которые ответственны за кодирования с группированием или повторением (например, классы в категории «альтернативы» или «повторение»), относятся к группе категорий «конструктор кодирования». Имеются также два класса, чьи объекты кодирования определяют процедуры, не относящиеся прямо к конструированию кодирования (#TRANSFORM и #OUTER): они считаются находящимися в группе категорий «процедура кодирования». Структуры кодирования определяются с помощью классов в группе категорий «битовое поле», которые комбинируются с классами из группы категорий «конструктор кодирования» вместе с классами из категорий «факультативные возможности» (представляют процедуры кодирования для разрешенных факультативных возможностей) и «тег» (представляют кодирование тегов). Все такие классы находятся в категории «структура кодирования», а также в группе категорий «битовое поле».

9.6.5    Для простейших классов категория присваивается прямо. Для классов, созданных в операторе присвоения класса кодирования, категория определяется с помощью нотации справа от символа «::=». Если эта нотация является определением структуры кодирования, то класс будет относиться как к категории «структура кодирования», так и к группе категорий «битовое поле». Если эта нотация

ГОСТ Р ИСО/МЭК 8825-3—2016

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

9.6.6    Категориями класса кодирования (см. 16.1.3) являются:

-    категория «альтернативы» (alternatives) (классы, которые получены путем присвоения класса из #ALTERNATIVES);

-    категория «конкатенация» (concatenation) (классы, которые получены путем присвоения класса из CONCATENATION);

-    категория «повторение» (repetition) (классы, которые получены путем присвоения класса из #REPETITION);

-    категория «факультативные возможности (опции)» (optionality) (классы, которые получены путем присвоения класса из #OPTIONAL);

-    категория «тег» (tag) (классы, которые получены путем присвоения класса из #TAG);

-    категории «булева» (boolean), «цепочка битов» (bitstring), «цепочка знаков» (characterstring), «целочисленная» (integer), «вырожденная» (null), «идентификатор объекта» (objectidentifier), «цепочка октетов» (octetstring), «открытый тип» (opentype), «pad» и «действительное число» (real) (категории для классов, которые получаются из соответствующих простейших классов);

-    категория «структура кодирования» (encoding structure) (классы, генерируемые из определений типов АСН.1 или с помощью явного определения структуры кодирования).

9.6.7    Определены следующие группы категорий:

-    «битовое поле» (bit-field) (классы, которые соответствуют реальным полям при кодировании, таким как поля в категории «целочисленная» или «булева», вместе с любым классом в категории «структура кодирования»). Классы в этой группе категорий называются также классами «битовое поле»;

-    «конструктор кодирования» (encoding constructor) (классы, которые находятся в категориях «альтернативы», «конкатенация» или «повторение»). Классы в этой группе категорий называются также классами «конструктор кодирования»;

-    «процедура кодирования» (encoding procedure) (классы, которые прямо не связаны с конструкторами АСН.1 и которым не могут быть присвоены новые имена — #OUTER, #TRANSFORM, #CONDITIONAL-INT, #CONDITIONAL-REPETITION). Классы в этой группе категорий называются также классами «процедуры кодирования».

9.7    Определение объектов кодирования

Имеются восемь механизмов, доступных для определения объектов кодирования заданного класса кодирования. Они не все доступны для всех классов кодирования.

9.7.1    Первый механизм определяет объект такой же, как некоторый другой определенный объект кодирования затребованного класса. Это всего лишь обеспечение синонима для объектов кодирования.

9.7.2    Вторым механизмом, доступным для ограниченного набора классов кодирования, является использование определенного синтаксиса (см. 17.2) для указания информации, необходимой для определения объекта кодирования этого класса. Многое из необходимой информации является общим для всех классов кодирования, а некоторая информация всегда зависит от конкретного класса кодирования (см. в D.1.1.2 пример определения объекта кодирования класса #BOOLEAN, который содержит кодирования для булева типа АСН.1).

9.7.3    Третий механизм, доступный для всех классов кодирования — это определение объекта кодирования в виде кодовой последовательности необходимого класса, которая содержится в некотором существующем наборе объектов кодирования. Это используется главным образом при именовании объекта кодирования для отдельного класса, который будет выполнять кодирования BER или PER для этого класса.

Примечание — Это часто может быть полезным, но требует знания процедур кодирования в виде стандартизованных правил кодирования.

9.7.4    Четвертый механизм — это отображение абстрактных значений, связанных с некоторым классом кодирования (например, «#А»), в абстрактные значения, связанные с другим (обычно более сложным) классом кодирования (например, «#В»), и определение объекта кодирования для «#В» (используя любой доступный механизм). Объект кодирования для абстрактных значений, связанных с «#А», может быть теперь определен как приложение объекта кодирования для «#В» к соответствующим

абстрактным значениям, связанным с «#В» (см. пример D.2.8.3). Вариантов такого отображения много (см. 9.17).

Примечание — Это является моделью, лежащей в основе определения объекта для кодирования целочисленного типа в BER. Целое число отображается в структуру кодирования, которая содержит поле какого-либо класса «тег» (UNIVERSAL, APPLICATION, PRIVATE или зависящий от контекста), примитива/конструктора булево значение, поле номера тега и часть значения, которая кодирует абстрактные значения исходного целого числа.

9.7.5    Пятый механизм — это определение объекта кодирования для некоторого класса (например, соответствующего определенному пользователем типу АСН.1) путем отдельного определения объектов кодирования для компонентов и конструктора кодирования, используемых в определении этого класса кодирования.

9.7.6    Шестой механизм — это определение объекта кодирования для дифференциального кодирования-декодирования (см. 9.8) с использованием двух отдельных объектов кодирования, один из которых определяет поведение кодера, а другой указывает декодеру, как должно учитываться кодирование.

Примечание — Примером будет кодирование поля, которое «зарезервировано для будущего использования» в виде всех нулей, но обеспечивается прием некоторого значения при декодировании.

9.7.7    Седьмой механизм — это определение такого объекта кодирования с факультативными способами кодирования, который содержит упорядоченный список объектов кодирования одного и того же класса. Кодер может выбирать для применения объект кодирования из списка с учетом следующего ограничения: если только один факультативный способ кодирования может кодировать заданное абстрактное значение, то он будет применяться, при этом рекомендуется, чтобы использовался первый доступный способ кодирования из списка.

Примечание — Объект кодирования с факультативными возможностями может, например, использоваться в спецификации кодовых последовательностей с короткой длиной, где они могут кодировать конкретную длину цепочки, используя кодовые последовательности с большой длиной, где короткая длина не может использоваться. Сейчас нет механизма для спецификатора ECN, запрашивающего использование первого доступного объекта кодирования (если более чем один объект могут кодировать абстрактное значение), кроме применения комментария.

9.7.8    Наконец, объект кодирования может быть определен с помощью не-ECN нотации. Это является средством, позволяющим использовать любую желательную нотацию (включая единственный язык) для определения объекта кодирования (см. D.2.7.3).

Примечание — He-ECN нотация должна использоваться с осторожностью, так как в этом случае обычно невозможна инструментальная поддержка реализации.

9.8    Дифференциальное кодирование-декодирование

9.8.1    Дифференциальное («различительное») кодирование-декодирование — это термин, применяемый к спецификации, которая требует реализации, принимающей (при декодировании) дополнительные битовые последовательности к тем, которые разрешены для генерирования при выполнении кодирования.

9.8.2    Дифференциальное кодирование-декодирование лежит в основе всей поддержки «растяжимости» (способности реализации ранней версии стандарта иметь хорошую возможность взаимодействия с реализацией поздней версии настоящего стандарта).

9.8.3    Дифференциальное кодирование-декодирование может быть очень сложным. Обычно оно содержит требование, чтобы декодер принимал (и молчаливо игнорировал) поля заполнения (обычно с переменной длиной), которые в последующих версиях стандарта будут использоваться для переноса информации, дополняющей ту, которая переносится в ранней версии связи.

9.8.4    Поддержка дифференциального кодирования-декодирования в ECN обеспечивается синтаксисом, который позволяет определять (для любого класса) такой объект кодирования, в который вложены два объекта кодирования. Каждый объект кодирования определяет правила кодирования. Первый объект кодирования определяет правила, используемые кодером. Декодер использует второй объект кодирования в качестве спецификации способа, которым было выполнено кодирование.

Примечание — В ECN правила, используемые декодером (в ранней версии стандарта), всегда выражаются при помощи правил кодирования, которые, как предполагает декодер, использует его партнер по связи. Правила декодирования не даются в виде явных правил кодирования. Спецификатор ECN будет гарантировать, что такие правила декодирования обеспечат некоторую необходимую «растяжимость».

14

ГОСТ Р ИСО/МЭК 8825-3—2016

Содержание

1    Область применения..................................................................1

2    Нормативные ссылки..................................................................1

2.1    Идентичные международные стандарты..............................................1

2.2    Дополнительные ссылки...........................................................2

3    Термины и определения...............................................................2

3.1    Определения терминов по АСН.1....................................................2

3.2    Определения терминов, специфичных для ECN........................................2

4    Сокращения.........................................................................6

5    Определение синтаксиса ECN..........................................................6

6    Соглашения о кодировании и нотация....................................................6

7    Набор знаков ECN....................................................................7

8    Лексические элементы ECN............................................................8

8.1    Справочные имена объектов кодирования............................................8

8.2    Справочные имена набора объектов кодирования......................................8

8.3    Справочные имена классов кодирования.............................................8

8.4    Элементы «зарезервированное слово»...............................................8

8.5    Элементы «зарезервированное имя класса кодирования»...............................9

8.6    He-ECN элемент..................................................................9

9    Понятия ECN........................................................................9

9.1    Спецификация нотации управления кодированием (ECN)................................9

9.2    Классы кодирования..............................................................10

9.3    Структуры кодирования...........................................................11

9.4    Объекты кодирования............................................................11

9.5    Наборы объектов кодирования.....................................................11

9.6    Определение новых классов кодирования............................................12

9.7    Определение объектов кодирования................................................13

9.8    Дифференциальное кодирование-декодирование.....................................14

9.9    Факультативные возможности в кодовых последовательностях..........................15

9.10    Свойства объектов кодирования...................................................15

9.11    Параметризация................................................................15

9.12    Руководители..................................................................16

9.13    Общие аспекты кодирования......................................................16

9.14    Идентификация информационных элементов........................................17

9.15    Ссылочные поля и определители..................................................17

9.16    Классы и структуры замены......................................................18

9.17    Отображение абстрактных значений в поля структур кодирования......................19

9.18    Преобразователи и композиции преобразования.....................................19

9.19    Содержимое модулей определения кодирования.....................................20

9.20    Содержимое модуля компоновки кодирования.......................................21

9.21    Определение способов кодирования для простейших классов кодирования...............21

9.22    Приложение кодирований........................................................23

9.23    Комбинированный набор объектов кодирования......................................24

9.24    Точка приложения...............................................................24

III

ГОСТ Р ИСО/МЭК 8825-3—2016

9.9    Факультативные возможности в кодовых последовательностях

9.9.1    Факультативные возможности («опции») в протоколах обычно считаются сегодня чем-то, чего следует избегать, но ECN должна обеспечивать поддержку таких факультативных возможностей, если разработчик протокола решает (или решил ранее) применить их.

9.9.2    Когда значения кодируются в пространство кодирования, возможно указать, что размер пространства кодирования (см. 9.21.5) является факультативной возможностью кодера, обеспечив наличие некоторой формы определителя длины, связанного с кодированием (расширение факультативных возможностей может быть ограничено максимальным значением, которое может кодироваться в определителе длины). Это обеспечивает некоторый детальный уровень поддержки факультативных возможностей кодирования.

9.9.3    Более общим является механизм, похожий на поддержку дифференциального кодирования-декодирования (см. 9.8), но в этом случае объект кодирования для некоторого класса может определяться в виде выбора в кодере объекта кодирования из упорядоченного списка определенных объектов кодирования для этого класса. Дополнительно к определению списка возможных кодовых последовательностей необходимо также обеспечить спецификацию объекта кодирования для класса в категории «альтернативы» (см. 9.6). Этот объект кодирования определяет кодовые последовательности и процедуры, необходимые декодеру, чтобы определять, какой именно объект кодирования был применен кодером.

9.10    Свойства объектов кодирования

9.10.1    Объекты кодирования имеют некоторые общие свойства. В большинстве случаев они полностью определяют кодирование, но в некоторых случаях они являются конструкторами кодирования, то есть они определяют только структурные аспекты кодирования, которые затребуют объекты кодирования для компонентов структуры кодирования, чтобы завершить определение кодовой последовательности.

9.10.2    Другой ключевой характеристикой объекта кодирования является то, что он может затребовать информацию от вычислительной среды, в которой его правила в конечном счете применяются. Одним из аспектов такой вычислительной среды, который всегда поддерживается, является наличие границ в определении типа АСН.1, которые будут «видимыми для PER» (см. ИСО/МЭК 8825-2, подраздел 9.3).

Примечание — Несколько другой (и нестандартизованной) внешней зависимостью могло бы стать определение не-ECN объекта кодирования для класса кодирования #ALTERNATIVES, который указывает выбранную альтернативу, основанную на внешних данных, например, о канале, по которому передано сообщение.

9.10.3    Третьей ключевой характеристикой является то, что объект кодирования может применять идентификационный описатель в своих кодовых последовательностях. Это является такой частью (состоящей из фиксированного набора битовых позиций) всех кодовых последовательностей, которая образует и различает свои кодовые последовательности от кодовых последовательностей других объектов кодирования (любого класса), которые применяют такой же идентификационный описатель. Идентификационные описатели должны быть видимы для декодеров, не имеющих информации о том, что было кодировано — класс кодирования или абстрактное значение (но имеющих информацию об имени используемого идентификационного описателя). Это понятие моделирует (и обобщает) использование тегов в кодированиях BER: значение тега в BER может определяться без знания класса кодирования для всех кодовых последовательностей BER и служит для указания кодовой последовательности с целью различать функциональные возможности, упорядочивать наборы и выбирать альтернативы.

9.11    Параметризация

9.11.1    Объекты кодирования, наборы объектов кодирования и классы кодирования могут быть параметризованы так же, как типы и значения АСН.1. Это является просто расширением нормального механизма АСН.1.

9.11.2    В первую очередь параметризация используется при определении объекта кодирования, который нуждается в идентификации некоторого определителя для завершения определения кодовой последовательности (см. 9.13.2) (см. в D.1.11.3 пример параметризованного определения ECN).

9.11.3    Другим важным использованием параметризации является определение структуры кодирования, которая будет использована для замены многих разных классов в кодировании (см. также 9.16.5).

15

ГОСТ Р ИСО/МЭК 8825-3—2016

9.25    Условные кодирования...........................................................24

9.26    Другие условия для применения кодирований.......................................25

9.27    Управление кодированием для открытого типа.......................................25

9.28    Изменения международных стандартов об АСН.1 ....................................26

10    Определения классов кодирования, объектов кодирования

и наборов объектов кодирования........................................................26

11 Кодирование типов АСН.1............................................................29

11.1    Общие положения...............................................................29

11.2    Предопределенные классы кодирования, используемые для неявно

генерируемых структур кодирования...................................................30

11.3    Упрощение и расширение нотации АСН.1 для целей кодирования.......................31

11.4    Неявно генерируемые структуры кодирования.......................................33

12    Модуль компоновки кодирования (ELM)................................................33

12.1    Структура ELM.................................................................34

12.2    Типы кодирования..............................................................34

13    Применение кодирований............................................................35

13.1    Общие положения..............................................................35

13.2    Комбинированный набор объектов кодирования и его применение......................35

14    Модуль определения кодирования (EDM)...............................................38

15    Раздел переименований.............................................................39

15.1    Явно генерируемые и экспортируемые структуры....................................39

15.2    Изменения имен................................................................41

15.3    Определение области для изменений имени........................................42

16    Присвоения классов кодирования.....................................................43

16.1    Общие положения..............................................................43

16.2    Определение структуры кодирования..............................................46

16.3    Структура кодирования альтернативы..............................................49

16.4    Структура кодирования повторения................................................49

16.5    Структура кодирования конкатенации..............................................50

17    Присвоения объектов кодирования....................................................51

17.1    Общие положения..............................................................51

17.2    Кодирование с определенным синтаксисом.........................................52

17.3    Кодирование с наборами объектов кодирования.....................................53

17.4    Кодирование с использованием отображений значения................................53

17.5    Кодирование структуры кодирования...............................................54

17.6    Дифференциальное кодирование-декодирование....................................56

17.7    Факультативные возможности кодирования..........................................57

17.8    He-ECN определение объектов кодирования........................................58

18    Назначения наборов объектов кодирования.............................................58

18.1    Общие сведения................................................................58

18.2    Предопределяемые наборы объектов кодирования...................................59

19    Отображение значений..............................................................61

19.1    Общие положения..............................................................61

19.2    Отображение с помощью явных значений...........................................62

19.3    Отображение с помощью полей сопоставления......................................63

ГОСТ Р ИСО/МЭК 8825-3—2016

19.4    Отображение с помощью объектов кодирования #TRANSFORM........................64

19.5    Отображение с помощью упорядочения абстрактных значений.........................65

19.6    Отображение с помощью распределения значений...................................66

19.7    Отображение целочисленных значений в биты.......................................67

20    Определение объектов кодирования с использованием определенного синтаксиса............69

21    Типы, используемые в спецификации определенного синтаксиса...........................70

21.1    Тип Unit.......................................................................70

21.2    Тип EncodingSpaceSize..........................................................70

21.3    Тип EncodingSpaceDetermination...................................................71

21.4    Тип UnusedBitsDetermination......................................................72

21.5    Тип OptionalityDetermination.......................................................72

21.6    Тип AlternativeDetermination.......................................................73

21.7    Тип RepetitionSpaceDetermination..................................................74

21.8    Тип Justification.................................................................75

21.9    Тип Padding....................................................................76

21.10    Типы Pattern и Non-Null-Pattern...................................................76

21.11    Тип RangeCondition.............................................................77

21.12    Тип Comparison................................................................78

21.13    Тип SizeRangeCondition.........................................................78

21.14    Тип ReversalSpecification........................................................79

21.15    Тип ResultSize.................................................................79

21.16    Тип HandleValueSet.............................................................80

21.17    Тип IntegerMapping.............................................................80

22    Обычно используемые группы признаков кодирования....................................81

22.1    Спецификация замены ..........................................................81

22.2    Спецификация предварительного выравнивания    и заполнения.........................84

22.3    Спецификация начального указателя...............................................85

22.4    Спецификация пространства кодирования..........................................87

22.5    Определение факультативных возможностей........................................89

22.6    Определение альтернативы......................................................91

22.7    Спецификация пространства повторения...........................................93

22.8    Заполнение и выравнивание значения..............................................96

22.9    Спецификация идентификационного описателя......................................98

22.10    Спецификация конкатенации...................................................100

22.11    Спецификация кодирования вложенного типа......................................101

22.12    Спецификация реверсии битов..................................................102

23    Спецификация определенного синтаксиса для классов    «битовое поле» и «конструктор»......103

23.1    Определение объектов    кодирования для классов    в    категории    «альтернативы»...........103

23.2    Определение объектов    кодирования для классов    в    категории    «цепочка битов»...........105

23.3    Определение объектов    кодирования для классов    в    категории    «булева».................108

23.4    Определение объектов кодирования для классов    в категории «цепочка знаков»..........110

23.5    Определение объектов кодирования для классов    в категории «конкатенация»...........113

23.6    Определение объектов кодирования для классов    в категории «целочисленная»..........116

23.7    Определение объектов кодирования для класса #CONDITIONAL-INT...................116

23.8    Определение объектов кодирования для классов    в «вырожденной» категории...........120

V

23.9    Определение объектов кодирования для классов в категории «цепочка октетов».........123

23.10    Определение объектов кодирования для классов в категории «открытый тип»...........125

23.11    Определение объектов кодирования для классов в категории

«факультативные возможности»......................................................128

23.12    Определение объектов    кодирования    для классов    в    категории    «pad»...................130

23.13    Определение объектов    кодирования    для классов    в    категории    «повторение»............132

23.14    Определение объектов кодирования для класса #CONDITIONAL-REPETITION..........133

23.15    Определение объектов    кодирования    для классов    в    категории    «тег»...................136

23.16    Определение объектов    кодирования    для классов    в    других категориях.................139

24    Спецификация определенного синтаксиса для класса кодирования #TRANSFORM...........139

24.1    Сводный перечень признаков кодирования и    определенного    синтаксиса................139

24.2    Источник и цель преобразователей...............................................141

24.3    Преобразователь    int-to-int.......................................................142

24.4    Преобразователь    bool-to-bool....................................................144

24.5    Преобразователь    bool-to-int......................................................144

24.6    Преобразователь    int-to-bool......................................................144

24.7    Преобразователь    int-to-chars.....................................................145

24.8    Преобразователь    int-to-bits......................................................146

24.9    Преобразователь    bits-to-int......................................................147

24.10    Преобразователь    char-to-bits....................................................148

24.11    Преобразователь    bits-to-char....................................................150

24.12    Преобразователь    bit-to-bits.....................................................151

24.13    Преобразователь    bits-to-bits....................................................151

24.14    Преобразователь    chars-to-composite-char.........................................152

24.15    Преобразователь    bits-to-composite-bits............................................152

24.16    Преобразователь    octets-to-composite-bits..........................................153

24.17    Преобразователь    composite-char-to-chars.........................................153

24.18    Преобразователь    composite-bits-to-bits............................................153

24.19    Преобразователь    composite-bits-to-octets..........................................154

25    Полные кодирования и    класс #OUTER................................................154

25.1    Признаки кодирования, синтаксис и цель для    класса #OUTER.........................154

25.2    Действия кодера для #OUTER...................................................155

25.3    Действия декодера для #OUTER.................................................156

Приложение А (обязательное) Добавление к ИСО/МЭК 8824-1 ............................... 157

Приложение В (обязательное) Добавление к ИСО/МЭК 8824-2............................... 159

Приложение С (обязательное) Добавление к ИСО/МЭК 8824-4............................... 164

Приложение D (справочное) Примеры...................................................167

Приложение Е (справочное) Поддержка кодовых последовательностей Хаффмана.............195

Приложение F (справочное) Дополнительная информация о нотации

управления кодированием (ECN)...........................................197

Приложение G (справочное) Сводный перечень нотации ECN...............................197

Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов

национальным стандартам..............................................213

VI

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Информационная технология ПРАВИЛА КОДИРОВАНИЯ АСН.1 Часть 3

Спецификация нотации контроля кодирования (ECN)

Information technology. АСН.1 encoding rules. Part 3. Specification of Encoding Control Notation (ECN)

Дата введения — 2017—11—01

1    Область применения

Настоящий стандарт определяет нотацию для спецификации кодирования типов АСН.1 или частей типов.

В настоящем стандарте предусмотрено несколько механизмов такой спецификации, в том числе:

-    прямая спецификация кодирования с помощью стандартизованной нотации;

-    спецификация кодирования путем ссылки на стандартизованные правила кодирования;

-    спецификация кодирования типа АСН.1 путем ссылки на некоторую структуру кодирования;

-    спецификация кодирования с использованием не-ECN нотации.

В настоящем стандарте предусмотрены также средства для связи спецификаций кодирования с определениями типов, к которым кодирование должно применяться.

ECN в данный момент не предоставляет поддержку для спецификации, использующей OID тип международного идентификатора ресурсов или относительный OID тип международного идентификатора (см. МСЭ-Т рек. Х.680/ ИСО/МЭК 8824-1), и они не указаны далее в настоящем стандарте.

2    Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие международные стандарты.

2.1 Идентичные международные стандарты

ISO/IEC 9834-1:2005 Information technology — Open Systems Interconnection — Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree (ИСО/МЭК 9834-1:2005 Информационные технологии. Взаимосвязь открытых систем. Процедуры для работы регистрационных органов в системе OSI. Часть 1. Общие процедуры и высшие разряды дерева идентификаторов объекта ASN.1)

ISO/IEC 8824-1:2008 Information technology —Abstract Syntax Notation One (ACH.1): Specification of basic notation [ИСО/МЭК 8824-1:2008 Информационная технология. Абстрактно-синтаксическая нотация 1 (АСН.1). Часть 1. Спецификация базовой нотации]

ISO/IEC 8824-2:2008 Information technology —Abstract Syntax Notation One (ACH.1): Information object specification [ИСО/МЭК 8824-2:2008 Информационная технология. Абстрактно-синтаксическая нотация 1 (АСН.1). Часть 2. Спецификация информационных объектов]

Издание официальное

ISO/IEC 8824-3:2008 Information technology — Abstract Syntax Notation One (ACH.1): Constraint specification [ИСО/МЭК 8824-3:2008 Информационная технология. Абстрактно-синтаксическая нотация 1 (АСН.1). Часть 3. Спецификация ограничений]

ISO/IEC 8824-4:2008 Information technology—Abstract Syntax Notation One (ACH.1): Parameterization of ACH.1 specifications [ИСО/МЭК 8824-4:2008 Информационная технология. Абстрактно-синтаксическая нотация 1 (АСН.1). Часть 4. Параметризация спецификаций ASN-1]

ISO/IEC 8825-1:2008 Information technology — АСН.1 encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER), and Distinguished Encoding Rules (DER) [ИСО/МЭК 8825-1:2008 Информационная технология. Правила кодирования АСН.1. Часть 1. Спецификация базовых правил кодирования (BER), канонических правил кодирования (CER) и выделенных правил кодирования (DER)]

ISO/IEC 8825-2:2008 Information technology—АСН.1 encoding rules: Specification of Packed Encoding Rules (PER) [ИСО/МЭК 8825-2:2008 Информационная технология. Правила кодирования АСН.1. Часть 2. Спецификация уплотненных правил кодирования (PER)]

Примечания

1    Независимо от даты публикации ИСО вышеприведенные публикации обычно называют «АСН.1:2008».

2    Вышеприведенные ссылки следует понимать как ссылки на указанные международные стандарты вместе со всеми опубликованными поправками и техническими исправлениями.

2.2 Дополнительные ссылки

ИСО/МЭК 10646:2003 Информационная технология. Универсальный набор многооктетных кодированных знаков (UCS) [ISO/IEC 10646:2003 Information technology — Universal Multiple-Octet Coded Character Set (UCS)]

Примечание — Вышеприведенную ссылку следует понимать как ссылку на стандарт ИСО/МЭК 10646 вместе со всеми опубликованными поправками и техническими исправлениями.

3 Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями.

3.1    Определения терминов по АСН.1

В настоящем стандарте применены термины по ИСО/МЭК 8824-1, ИСО/МЭК 8824-2, ИСО/МЭК 8824-3, ИСО/МЭК 8824-4, ИСО/МЭК 8825-1, ИСО/МЭК 8825-2.

3.2    Определения терминов, специфичных для ECN

3.2.1    точка выравнивания (alignment point): Точка в кодовой последовательности (обычно ее начало), которая служит в качестве эталонной точки, когда спецификация кодирования требует выравнивания (фазирования) до некоторой границы.

3.2.2    вспомогательное поле (auxiliairy field): Поле структуры «замена» (которая добавляется к спецификации ECN), значение которой устанавливается прямо кодером без использования какого-либо абстрактного значения, выдаваемого приложением.

Примечание — Примером вспомогательного поля является определитель длины при кодировании целых чисел или при повторении.

3.2.3    битовое поле (bit-field): Смежные биты или октеты в кодовой последовательности, которые декодируются как целое и которые либо представляют абстрактное значение, либо содержат информацию (например, определитель длины некоторого другого поля, см. 3.2.31), необходимую для успешного декодирования, либо представляют то и другое.

Примечание — «То и другое» часто встречается в традиционных протоколах.

3.2.4    класс битового поля (bit-field class): Класс кодирования, объекты которого определяют кодирование абстрактных значений (некоторого типа АСН.1) в биты.

Примечание — Другие классы кодирования относятся к более общим процедурам кодирования, таким как процедуры, требующие определения конца повторений кодирования некоторого класса битового поля или определения присутствия альтернативного кодирования битового поля из некоторого набора.

ГОСТ Р ИСО/МЭК 8825-3—2016

3.2.5    условие границ (bound condition): Условие наличия границ для поля целых чисел (независимо от того, разрешают они отрицательные значения или нет), которое, если оно удовлетворено, означает, что должны применяться определенные правила кодирования.

3.2.6    определитель выбора (choice determinant): Битовое поле, которое определяет, какие из нескольких возможных кодовых последовательностей (каждая из которых представляет разные абстрактные значения) имеются в некотором другом битовом поле.

3.2.7    комбинированный набор объектов кодирования (combined encoding object set): Временный набор объектов кодирования, образованный путем комбинации двух наборов объектов кодирования с целью применения этих кодирований.

3.2.8    условия кодирования (conditional encoding): Кодирование, которое должно применяться только в случае, когда выполняется некоторое указанное условие границ или условие диапазона размеров.

Примечание — Условие может быть условием границ, или условием диапазона размера, или другими более сложными условиями.

3.2.9    объемлющий тип (containing type): Тип АСН.1 (или поле структуры кодирования), у которого ограничение на содержание применяется к значениям этого типа (или к значениям, связанным с этим полем структуры кодирования).

Примечание — Типы АСН.1, к которым может применяться ограничение на содержание (с помощью CONTAINING/ENCODED BY), — это типы «цепочка битов» и «цепочка октетов».

3.2.10    текущая точка применения (current application point): Точка в структуре кодирования, в которой применяется комбинированный набор объектов кодирования.

3.2.11    дифференциальное кодирование-декодирование (differential encoding-decoding): Спецификация правил для кодера, требующих приема кодовых последовательностей, которые не могут вырабатываться кодером, соответствующим текущей спецификации.

Примечание — Дифференциальное кодирование-декодирование поддерживает спецификацию декодирования декодером (соответствующим какой-либо начальной версии стандарта), которая предназначена для создания ему возможности успешно декодировать коды, образованные последующей версией этого стандарта. Это иногда называют «поддержкой растяжимости».

3.2.12    класс кодирования (encoding class): Набор всех возможных кодовых последовательностей для конкретной части процедур, необходимых для выполнения кодирования или декодирования некоторого типа АСН.1.

Примечание — Классы кодирования определены для кодирования простейших (примитивных) типов АСН.1, а также определены для процедур, связанных с нотацией тегов АСН.1, использованием OPTIONAL, и для конструкторов кодирования.

3.2.13    категория классов кодирования (encoding class category): Классы кодирования с некоторыми общими характеристиками.

Примечание — Примерами являются категории «целочисленная», «булева» и «конкатенация».

3.2.14    конструктор кодирования (encoding constructor): Класс кодирования, объекты кодирования которого определяют процедуры кодирования для частей комбинирования, выбора и повторения (примерами являются классы «ALTERNATIVES, «CHOICE, «CONCATENATION, «SEQUENCE и др.).

3.2.15    модули определения кодирования (EDM) (Encoding Definition Modules): Модули, которые определяют кодовые последовательности для применения в модуле компоновки кодирования.

3.2.16    модуль компоновки кодирования (ELM) (Encoding Link Module): Модуль (уникальный для любого заданного применения), который применяет кодовые последовательности к типам АСН.1.

3.2.17    объект кодирования (encoding object): Спецификация некоторой части процедур, необходимой для выполнения кодирования или декодирования того или иного типа АСН.1.

Примечание — Объекты кодирования могут определять кодирование простейших типов АСН.1, а также определять процедуры, связанные с нотацией тегов АСН.1, использованием OPTIONAL и с конструкторами кодирования.

3.2.18    набор объектов кодирования (encoding object set): Набор из объектов кодирования.

Примечание — Набор объектов кодирования обычно используется в модуле компоновки кодирования для определения кодирования всех типов верхнего уровня, используемых в каком-либо применении.

3

3.2.19    признак кодирования (encoding property): Отрезок информации, используемый для определения кодирования с помощью нотации, описанной в разделах 23—25.

3.2.20    пространство кодирования (encoding space): Число битов (или октетов, слов, или других единиц), используемых для кодирования абстрактного значения в битовое поле (см. 9.21.5).

3.2.21    структура кодирования (encoding structure): Структура для кодирования, определенная либо из структуры определения типа АСН.1, либо в EDM с помощью классов битового поля и конструкторов кодирования.

Примечания

1    Использование структуры кодирования является лишь одним (но важным) механизмом из нескольких, обеспечиваемых нотацией управления кодированием для определения кодовых последовательностей для типов АСН.1.

2    Определение структуры кодирования является также определением соответствующего класса кодирования.

3.2.22    явно генерируемая структура кодирования (explicitly generated encoding structure): Структура кодирования, выделенная из неявно генерируемой структуры кодирования путем использования раздела переименований в EDM.

3.2.23    растяжимость (extensibility): Положения в ранней версии стандарта, которые рассчитаны на облегчение взаимодействия реализаций этой ранней версии с ожидаемыми реализациями последующей версии этого стандарта.

3.2.24    полностью определенное имя (fully-qualified name): Ссылка на класс кодирования, объект кодирования или набор объектов кодирования, которая содержит либо имя модуля EDM, в котором этот класс, объект или набор объектов кодирования определен, либо (в случае неявно генерируемого класса кодирования) имя модуля АСН.1, в котором он был генерирован (см. также 3.2.43).

Примечание — Полностью определенное имя (см. продукцию «ExternalEncodingClassReference» в 10.6) должно использоваться в теле модуля, если классом кодирования является неявно генерируемая структура кодирования, чье имя совпадает с зарезервированным именем класса, либо, если имя используется отдельно, вызовет неоднозначность из-за многих импортов классов с этим именем (см. А.1, 13.16).

3.2.25    генерируемая структура кодирования (generated encoding structure): Неявно или явно генерируемая структура кодирования, целью которой является определение кодовых последовательностей соответствующего типа АСН.1 путем применения кодовых последовательностей в ELM.

3.2.26    руководитель или руководящее указание (governor): Часть спецификации ECN, которая определяет синтаксическую форму (или семантику) какой-либо другой части спецификации ECN.

Примечание — Руководитель является ссылкой на класс кодирования и указывает синтаксис, который будет использован для определения объекта кодирования (этого класса). Это понятие такое же, как понятие ссылки на тип в АСН.1, играющей роль руководителя для нотации значений АСН.1.

3.2.27    набор значений описателя (handle value set): Определенный набор всех возможных значений идентификационного описателя, присущий объекту кодирования.

3.2.28    идентификационный описатель (identification handle): Часть кодирования, которая служит для различения способов кодирования одного класса кодирования от способов кодирования других классов кодирования.

Примечание — В базовых правилах кодирования АСН. 1 используются теги для обеспечения идентифицирующих описателей в кодовых последовательностях BER.

3.2.29    неявно генерируемая структура кодирования (implicitly generated encoding structure): Структура кодирования, которая генерируется и экспортируется неявно, когда тип определен в модуле АСН.1.

3.2.30    точка начального применения (initial application point): Точка в структуре кодирования, в которой заданный комбинированный набор объектов кодирования применяется в первый раз (в ELM или в модулях EDM).

3.2.31    определитель длины (length determinant): Битовое поле, которое определяет длину другого битового поля.

3.2.32    отрицательное целочисленное значение (negative integer value): Значение, меньшее

нуля.

3.2.33    неотрицательное целочисленное значение (non-negative integer value): Значение, большее нуля или равное нулю.

3.2.34    неположительное целочисленное значение (non-positive integer value): Значение, меньшее нуля или равное нулю.

4