Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

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

18.2.1 Продукцией "BuiltinEncodingObjectSetReference" является:

BuiltinEncodingObjectSetReference ::=

PER-BASIC-ALIGNED

| PER-BASIC-UNALIGNED

| PER-CANONICAL-ALIGNED

| PER-CANONICAL-UNALIGNED

| BER

| CER

| DER

18.2.2 Эти имена наборов объектов кодирования указывают наборы объектов кодирования, определенные в ИСО /МЭК 8825-1 и ИСО /МЭК 8825-2. Идентификаторы объектов для правил кодирования, обеспечивающих эти наборы объектов кодирования, приводятся в таблице 4.

Примечание - Эти стандарты были написаны до настоящего стандарта об ECN и не используют терминологию объектов кодирования. Они определяют, например, способ кодирования типа АСН.1 INTEGER или BOOLEAN. Это следует интерпретировать как определение объекта кодирования класса #INTEGER или класса #BOOLEAN.



Таблица 4 - Имена предопределенных наборов объектов кодирования и связанные идентификаторы объектов

Имя

Идентификатор

PER-BASIC-ALIGNED

{joint-iso-itu-t(2) asn1(1) packed-encoding(3) basic(0) aligned(0)}

PER-BASIC-UNALIGNED

{joint-iso-itu-t(2) asn1(1) packed-encoding(3) basic(0) unaligned(1)}

PER-CANONICAL-ALIGNED

{joint-iso-itu-t(2) asn1(1) packed-encoding(3) canonical(1) aligned(0)}

PER-CANONICAL-UNALIGNED

{joint-iso-itu-t(2) packed-encoding(3) canonical(1) unaligned(1)}

BER

{joint-iso-itu-t(2) asn1(1) basic-encoding(1)}

CER

{joint-iso-itu-t(2) asn1(1) ber-derived(2) canonical-encoding(0)}

DER

{joint-iso-itu-t(2) asn1(1) ber-derived(2) distinguished-encoding(1)}

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

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

18.2.4 Все вышеприведенные наборы содержат объекты кодирования для классов, используемых в неявно генерируемых структурах кодирования (см. 11.2), которые отличаются для каждого набора правил кодирования. Каждый из них содержит также идентичные объекты кодирования для классов #INT, #BOOL, #NUL, #CHARS, #OCTETS, #BITS, #CONCATENATION. Они не содержат объектов кодирования для #ALTERNATIVES, #REPETITION и #PAD.

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

18.2.5.1 #INT кодируется в виде кодирования PER-BASIC-UNALIGNED #INTEGER при условии, что он имеет границы. Если #INT не имеет нижней и верхней границ, когда этот объект кодирования применяется к #INT, то это будет ошибкой разработки ECN.

18.2.5.2 #BOOL и #NUL кодируются в виде PER-BASIC-UNALIGNED #BOOLEAN и #NULL соответственно.

18.2.5.3 #CHARS, #OCTETS и #BITS кодируются в виде PER-BASIC-UNALIGNED UTF8String, #OCTETSTRING и #BIT-STRING соответственно при условии, что они имеют единый размер. Если #CHARS, #OCTETS или #BITS не имеют реального указания размера, ограничивающего их до единого размера, то это будет ошибкой разработки ECN.

18.2.5.4 #CONCATENATION кодируется в виде PER-BASIC-UNALIGNED кодирования #SEQUENCE без факультативных компонентов. Если эти объекты кодирования применены к #CONCATENATION с факультативными компонентами, то это будет ошибкой спецификации ECN.