ГОСТ Р ИСО/МЭК 8825-3—2016
component USE-SET
OPTIONAL-ENCODING if-component-present-encoding{< determinant >} }
WITH Sequence2-combined-encoding-object-set}
Кодирование полностью указывается описанием объектов кодирования «if-component-present-encodingw и
«determinant-encoding»:
if-component-present-encoding {<REFERENCE:presence-bit>} «Presence-determinant{
PRESENCE
DETERMINED BY field-to-toe-set
USING presence-bit}
determinant-encoding #BOOLEAN ::= {
ENCODING-SPACE
SIZE 1
MULTIPLE OF bit
TRUE-PATTERN bits:’0aB
FALSE-PATTERN bits:’1aB}
D.3.3 Последовательность с факультативными компонентами, указанными уникальным тегом и раз
граниченными полем длины
D.3.3.1 Присвоения АСН.1 равны:
Octet3 ::= OCTET STRING (CONTAINING Sequence3)
Sequence3 ::=SEQUENCE {
componentl [0] BIT STRING (SIZE(0 .2047)) OPTIONAL.
component2 [1] OCTET STRING (SIZE(0..2047)) OPTIONAL,
components [2] VisibleString (SIZE(0..2047)) OPTIONAL }
D.3.3.2 Каждый компонент указывается тегом из четырех битов, а общая длина этой последовательности
указывается полем из одиннадцати битов, которое предшествует кодированию первого компонента.
D.3.3.3 Классы кодирования «OCTETS. «OPTIONAL и «TAG переименовываются соответственно в #Octets3,
»Sequence3-optional и #TAG-4-bits в разделе «RENAMES» (см. D.3.7). Затем объекты кодирования новых классов
кодирования определяются.
D.3.3.4 Присвоениями класса кодирования и объекта кодирования для цепочки октетов являются:
«Octets3 ::= «OCTET-STRING
octets3-encoding «Octets3 ::= {
REPETITION-ENCODING {
REPLACE STRUCTURE
WITH «Octets-with-length
ENCODED BY octets-with-length-encoding}}
#Octets-with-length{< «Element >} ::= «CONCATENATION {
length #INT(0..2047),
octets «Element}
octets-with-length-encoding{< «Element >} #Octets-with-length{< «Element >} ::= {
ENCODE STRUCTURE{
octets octets-encoding{< length >}}
WITH PER-BASIC-UNALIGNED}
octets-encoding{< REFERENCE:length >} «OCTETS ::= {
REPETITION-ENCODING {
REPETITION-SPACE
SIZE variable-with-determinant
DETERMINED BY field-to-be-set
USING length} }
D.3.3.5 Присвоениями класса кодирования и объекта кодирования для последовательности являются:
sequence3-encoding «Sequence3 ::= {
ENCODE STRUCTURE{
185