ГОСТ Р ИСО/МЭК 8825-2-2003
ПРИЛОЖЕНИЕ А (справочное)
Пример кодирования
В настоящем приложении иллюстрируется использование правил уплотненного кодирования, специфицированных в настоящем стандарте, на примере представления в октетах (гипотетической) персональной записи, определенной с использованием АСН. 1.
А.1 Запись, которая не использует ограничения подтипа
А.1.1 Описание АСН. 1 структуры записи
Ниже формально описана структура гипотетической персональной записи с использованием АСН. 1, специфицированной в ГОСТ Р ИСО/МЭК 8824-1 для определения типов. Описание идентично примеру, приведенному в ГОСТ Р ИСО/МЭК 8825-1, приложение А.
PersonnelRecord :: = [APPLICATION 0] IMPLICIT SET {
name Name,
title [0] VisibleString,
number EmployeeNumber,
dateOfflire [1] Date,
nameOfSpouse [2] Name,
children [3] IMPLICIT
SEQUENCE OF ChildInformation DEFAULT {} }
ChildInformation :: = SET
{name Name,
dateOfBirth [0] Date}
Name :: = [APPLICATION 1] IMPLICIT SEQUENCE {givenName VisibleString,
initial VisibleString,
familyName VisibleString}
EmployeeNumber :: = [APPLICATION 2] IMPLICIT INTEGER
Date :: = [APPLICATION 3] IMPLICIT VisibleString - - YYYYMMDD
А.1.2 Описание АСН. 1 значения записи
Ниже приведено формальное описание с использованием АСН. 1 значения персональной записи для Джона Смита (John Smith):
{ name {givenName «John», initial «P», familyName «Smith»}, title «Director»,
number 51,
dateOfflire «19710917»,
nameOfSpouse {givenName «Mary», initial «T», familyName «Smith»}, children {{name{givenName «Ralph», initial «T», familyName «Smith»}, dateOfBirth «19571111»},
{name{givenName «Susan», initial «В», familyName «Jones»}, dateOfBirth «19590717»}}}
А.1.3 Представление PER (ALIGNED) данного значения записи
Далее показано представление приведенного выше значения записи (после применения варианта ALIGNED установленных в настоящем стандарте правил уплотненного кодирования). Кодирование представлено в шестнадцатеричном виде и сопровождается двоичным видом с описательными комментариями.
Длина этого кодирования составляет 94 октета. Для сравнения, то же самое значение PersonnelRecord, закодированное с использованием варианта UNALIGNED PER, занимает 84 октета, BER с определенной формой длины — по крайней мере 136 октетов, а BER с неопределенной формой длины — по крайней мере 161 октет.
А.1.3.1 Шестнадцатеричное представление
80044A6F 686E0150 05536D69 74680133 08446972 6563746F 72083139 37313039 3137044D 61727901 5405536D 69746802 0552616C 70680154 05536D69 74680831 39353731 31313105 53757361 6E014205 4A6F6E65 73083139 35393037 3137
А.1.3.2 Двоичное представление
Для облегчения чтения данных в двоичном представлении использованы пустые строки для группировки логически связанных полей (обычно это пары длина/значение); для разделения полей использован конец
29