ГОСТ Р ИСО/МЭК 8825-1-2003
8.1.2.4.1 Головной октет должен быть закодирован следующим образом:
а) биты 8 и 7 представляют класс тега и должны быть закодированы так, как определено в таблице 1;
б) бит 6 должен быть нулем или единицей согласно правилам 8.1.2.5;
в) биты от 5 до 1 должны быть закодированы как 111112.
8.1.2.4.2 Последующие октеты должны кодировать номер тега следующим образом:
а) бит 8 каждого октета должен иметь значение 1, если он не является последним октетом идентификатора;
б) биты с 7 по 1 первого октета продолжения, за которыми следуют биты с 7 по 1 второго октета продолжения, за которыми, в свою очередь, следуют биты с 7 по 1 каждого следующего октета продолжения, до последнего, включительно, должны быть кодированием двоичного целого числа без знака, равного номеру тега, с битом 7 первого октета продолжения в качестве старшего значащего бита;
в) биты с 7 по 1 первого октета продолжения не должны быть все равны нулю.
8.1.2.4.3 На рисунке 4 показана форма октетов идентификатора для типа с тегом, номер которого больше 30.
Октеты продолжения
|
Головной октет 2-й октет Последний октет |
|
Класс |
П/С |
1 1 1 1 1| 11| | |l| |
hi I l°l I |
|
□ +^ |
+ l ! + □ + □ |
|
|
= Номер тега |
Рисунок 4 — Октет идентификатора (большой номер тега)
8.1.2.5 Бит 6 должен быть равен нулю, если кодирование простое, и единице, если кодирование составное.
Примечание — В последующих разделах для каждого типа определено, является его кодирование простым или составным.
8.1.2.6 В ГОСТ Р ИСО/МЭК 8824-1 установлено, что тег типа, определенного с использованием ключевого слова «CHOICE#, принимает значение тега того типа, значение данных которого выбрано.
8.1.2.7 В ГОСТ Р ИСО/МЭК 8824-2, 14.2 и 14.4 установлено, что тег типа, определенного с использованием конструкции «ObjectClassFieldType», неопределен, если он является полем типа, полем значения переменного типа или полем множества значений переменного типа. Этот тип впоследствии определяется как тип АСН.1, и его полное кодирование идентично кодированию значения присвоенного типа (включая октеты идентификатора).
8.1.3 Октеты длины
8.1.3.1 Определены две формы октетов длины, а именно:
а) определенная форма (см. 8.1.3.3);
б) неопределенная форма (см. 8.1.3.6).
8.1.3.2 Отправитель должен использовать:
а) определенную форму (см. 8.1.3.3), если кодирование простое;
б) либо определенную (см. 8.1.3.3), либо неопределенные формы (см. 8.1.3.6), по своему выбору, если кодирование составное и непосредственно доступно целиком;
в) неопределенную форму (см. 8.1.3.6), если кодирование составное и непосредственно доступно не полностью.
8.1.3.3 Для определенной формы октеты длины должны состоять из одного или нескольких октетов и представлять число октетов содержимого, используя короткую (см. 8.1.3.4) или длинную форму (см. 8.1.3.5), по выбору отправителя.
Примечание — Короткая форма может быть использована только в том случае, если число октетов содержимого меньше или равно 127.
5