25.1 Кодирование значения внешнего типа должно быть кодированием PER следующего типа "последовательность", для которого принята среда явного тегирования EXPLICIT TAGS, со значением, определенным в последующих подразделах:
[UNIVERSAL 8] IMPLICIT SEQUENCE { | |||||||
direct-reference | OBJECT IDENTIFIER OPTIONAL, | ||||||
indirect-reference | IDENTIFIER OPTIONAL, | ||||||
data-value-descriptor | ObjectDescriptor OPTIONAL, | ||||||
encoding | CHOICE { | ||||||
single-ASN1-type | [0] ABSTRACT-SYNTAX.&Type, | ||||||
octet-aligned | [1] IMPLICIT OCTET STRING, | ||||||
arbitrary | [2] IMPLICIT BIT STRING}} |
Примечание - Этот тип "последовательность" является тем же типом, который был определен в ГОСТ Р ИСО/МЭК 8824-93.
25.2 Значения компонентов зависят от передаваемого абстрактного значения, которое является значением типа, определенного в ГОСТ Р ИСО/МЭК 8824-1, 32.5.
25.3 Компонент "data-value-descriptor" должен присутствовать только в том случае, если "data-value-descriptor" присутствует в абстрактном значении, и иметь то же самое значение.
25.4 Значения "direct-reference" и "indirect-reference" должны присутствовать или отсутствовать в соответствии с таблицей 1. Таблица 1 отображает альтернативы "identification" внешнего типа, определенные в ГОСТ Р ИСО/МЭК 8824-1, 32.5, в компоненты внешнего типа "direct-reference" и "indirect-reference", определенные в 25.1.
Таблица 1 - Альтернативные кодирования для "identification"
identification | direct-reference | indirect-reference |
syntaxes | ***НЕДОПУСТИМО*** | ***НЕДОПУСТИМО*** |
syntax | syntax | ОТСУТСТВУЕТ |
presentation-context-id | ОТСУТСТВУЕТ | presentation-context-id |
context-negotiation | transfer-syntax | presentation-context-id |
transfer-syntax | ***НЕДОПУСТИМО*** | ***НЕДОПУСТИМО*** |
fixed | ***НЕДОПУСТИМО*** | ***НЕДОПУСТИМО*** |
25.5 Значение данных должно быть закодировано согласно синтаксису передачи, идентифицированному кодированием, и помещено в альтернативу выбора "encoding", как указано ниже.
25.6 Если значение данных является значением единственного типа данных АСН.1 и правила кодирования для этого значения данных являются теми же самыми, как и для полного типа данных "EXTERNAL", то отправляемая реализация должна быть "single-ASN1-type".
25.7 Если кодированное значение данных, использующее согласованное или договорное кодирование, содержит целое число октетов, то отправляемая реализация должна быть "octet-aligned".
Примечание - Значение данных, которое является последовательностью типов АСН.1 и для которого синтаксис передачи специфицирует простое сцепление строк октетов, созданных применением базовых правил кодирования АСН.1 для каждого типа АСН.1, попадает в эту категорию, а не в 25.6.
25.8 Если кодированное значение данных, использующее согласованное или договорное кодирование, содержит не целое число октетов, то для "encoding" должно быть выбрано "arbitrary".
25.9 Если для "encoding" выбрано "single-ASN1-type", то тип АСН.1 должен заменить открытый тип со значением, равным значению кодируемых данных.
Примечание - Диапазон значений, которые могут встретиться в открытом типе, определяется регистрацией значения идентификатора объекта, ассоциированного с "direct-reference", и/или значением целого числа, ассоциированного с "indirect-reference".
25.10 Если для "encoding" выбрано "octet-aligned", то значение данных должно кодироваться в соответствии с согласованным или договорным синтаксисом передачи, а получающиеся октеты должны образовывать значение строки октетов.
25.11 Если для "encoding" выбрано "arbitrary", то значение данных должно кодироваться в соответствии с согласованным или договорным синтаксисом передачи, а результат должен образовать значение битовой строки.