7.1 В настоящем стандарте определены четыре правила кодирования (и связанные с ним идентификаторы объектов), которые могут быть использованы для кодирования и декодирования значений абстрактного синтаксиса, определенного как значения одного (известного) типа АСН.1. Настоящий раздел описывает эти правила и их свойства.
7.2 Без знания типа закодированного значения невозможно определить структуру кодирования (по любому из алгоритмов правил кодирования PER). В частности, конец кодирования не может быть определен из самого кодирования без знания типа закодированного значения.
7.3 Кодирование PER всегда является надежно передающим при условии, что абстрактные значения типов EXTERNAL, EMBEDDED PDV и CHARACTER STRING не содержат идентификаторы контекста уровня представления.
7.4 Алгоритмом наиболее общего правила кодирования, из определенного в настоящем стандарте, является BASIC-PER, который в общем случае не приводит к каноническому кодированию.
7.5 Вторым алгоритмом правила кодирования, определенным в настоящем стандарте, является CANONICAL-PER, который приводит к каноническим кодированиям. Он определен как ограничение на зависящие от реализации альтернативы в кодировании BASIC-PER. CANONICAL-PER приводит к каноническим кодированиям, которые применяются, когда к абстрактным значениям необходимо применять аутентификаторы, как описано в ГОСТ Р ИСО/МЭК 8825-1.
Примечание - Любая реализация, соответствующая кодированию CANONICAL-PER, удовлетворяет и кодированию BASIC-PER. Любая реализация, соответствующая декодированию BASIC-PER, удовлетворяет декодированию CANONICAL-PER. Таким образом, кодирования, созданные по CANONICAL-PER, являются кодированиями, которые допускаются BASIC-PER.
7.6 Если тип, кодируемый по BASIC-PER или CANONICAL-PER, содержит типы EMBEDDED PDV, CHARACTER STRING или EXTERNAL, то внешнее кодирование перестает быть надежно передающим, если синтаксис передачи, используемый для всех типов EMBEDDED PDV, CHARACTER STRING и EXTERNAL, не является надежно передающим. Если тип, кодируемый по BASIC-PER или CANONICAL-PER, содержит типы EMBEDDED PDV, CHARACTER STRING или EXTERNAL, то внешнее кодирование перестает быть каноническим, если синтаксис передачи, используемый для всех типов EMBEDDED PDV, CHARACTER STRING и EXTERNAL, не является каноническим.
Примечание - Символьные синтаксисы передачи, поддерживающие все символьные абстрактные синтаксисы вида {iso standard 10646 level-1 (1). . . .}:.}, являются каноническими. Символьные синтаксисы передачи, которые поддерживают {iso standard 10646 level-2 (2). . . .} и {iso standard 10646 level-3 (3). . . .}, не всегда являются каноническими. Все вышеуказанные символьные синтаксисы передачи являются надежно передающими.
7.7 Как BASIC-PER, так и CANONICAL-PER содержат по два варианта: ALIGNED (с выравниванием) и UNALIGNED (без выравнивания). В варианте ALIGNED вставляются заполняющие биты для восстановления выравнивания по октету. В варианте UNALIGNED заполняющие биты никогда не вставляются.
7.8 Между вариантами ALIGNED и UNALIGNED взаимодействие невозможно.
7.9 Кодирование PER является саморазграниченным, только если известен тип кодируемого значения. Кодовые представления всегда кратны восьми битам. При передаче в типе EXTERNAL кодирования должны передаваться в альтернативе OCTET STRING, если только сам тип EXTERNAL не кодируется по PER, когда значение может быть закодировано как единственный тип АСН.1 (то есть открытый тип). При передаче в протоколе уровня представления ВОС должно использоваться "полное кодирование" (как определено в ГОСТ 34.972) с выбранной альтернативой OCTET STRING.
7.10 Правила настоящего стандарта применяют к обоим алгоритмам и вариантам, если не оговорено иное.
7.11 Приложение С является справочным и содержит рекомендации, в каких комбинациях следует реализовывать PER для увеличения вероятности взаимодействия.