ГОСТ Р ИСО/МЭК 8825-1-2003
Каждый подидентификатор представляется как последовательность (одного или нескольких) октетов. Бит 8 каждого октета указывает, является ли он последним в последовательности: бит 8 в последнем октете — нулевой; бит 8 в каждом предшествующем октете — единица. Биты 7— 1 всех октетов в последовательности вместе кодируют подидентификатор. Сцепляясь, эти группы бит образуют двоичное число без знака, наиболее значащий бит которого является битом 7 первого октета, а наименее значащий бит — битом 1 последнего октета. Подидентификатор должен быть закодирован в минимально возможном количестве октетов, то есть головной октет подидентификатора не должен иметь значение 8016.
8.19.3 Число подидентификаторов (N) должно быть на единицу меньше, чем число компонентов идентификатора объекта в кодируемом значении.
8.19.4 Числовое значение первого подидентификатора получается из значений первых двух компонентов идентификатора объекта в кодируемом значении по формуле
(Л*40) + Y,
где X — значение первого компонента идентификатора объекта, а Y — второго.
Примечание — Эта упаковка первых двух компонентов идентификатора объекта учитывает, что из корневого узла присвоены только три значения.
8.19.5 Числовое значение /-го подидентификатора (2 < i < N) является (/ + 1)-м компонентом идентификатора объекта.
Пример. Значение OBJECT IDENTIFIER
{joint-iso-ccitt 100 3} или, что тоже,
{2 100 3}
имеет первый подидентификатор 180 и второй подидентификатор 3. Получается следующее кодирование:
OBJECT IDENTIFIER
Длина Содержимое
0616 0316 81340316
8.19bis Кодирование значения относительного идентификатора объекта
Примечание — Кодирование компонентов идентификатора объекта в относительном идентификаторе объекта такое же, как и кодирование компонентов (после второго) в идентификаторе объекта.
8.19bis.1 Кодирование значения относительного идентификатора объекта должно быть простым.
8.19bis.2 Октеты содержимого должны быть упорядоченным списком сцепленных кодирований подидентификаторов (см. 8.19bis.3, 8.19bis.4). Каждый подидентификатор представляется как серия (из одного или нескольких) октетов. Бит 8 каждого октета указывает, является ли этот октет последним в серии: бит 8 последнего октета равен нулю, бит 8 каждого предшествующего октета равен единице. Биты 7—1 октетов в серии кодируют подидентификатор. Концептуально эти группы битов сцеплены так, что образуют целое двоичное число без знака, старшим значащим битом которого является бит 7 первого октета, а младшим — бит 1 последнего октета. Подидентификатор должен быть закодирован в минимально возможном количестве октетов, т. е. первый октет подидентификатора не должен иметь значение 8016.
8.19bis.3 Количество подидентификаторов (N) должно быть равно количеству дуг идентификатора объекта в кодируемом значении относительного идентификатора объекта.
8.19bis.4 Численное значение i-го подидентификатора (1 < i < N) должно быть значением i-й дуги идентификатора объекта в кодируемом значении относительного идентификатора объекта.
8.19bis.5 Пример. Значение относительного идентификатора объекта
{8571 3 2}
имеет подидентификаторы 8571, 3 и 2. Для него получается следующее кодирование:
Относительный идентификатор
объекта Длина Содержимое
OD16 0416 C27B030216
14