Каждое поле данных или сцепление полей данных, если оно(они) закодировано(ы) в TLY, представляет собой последовательность информационных объектов. В данном разделе определены две категории информационных объектов: информационные объекты SIMPLE-TLV и информационные объекты BER-TLV.
5.2.1 Информационный объект SIMPLE-TLV
Каждый информационный объект SIMPLE-TLV должен состоять из двух или трех последовательных полей: обязательного поля тега, обязательного поля длины и условного поля значения. Записью (см. 7.3.1) может быть информационный объект SIMPLE-TLV.
Поле тега состоит из одиночного байта, кодирующего номер тега от 1 до 254. Значения '00' и 'FF' являются недействительными для поля тега. Если записью является информационный объект SIMPLE-TLV, то тег может использоваться как идентификатор записи.
Поле длины состоит из одного или трех последовательных байтов:
- если первый байт не установлен в 'FF', то поле длины состоит из одиночного байта, кодирующего число от нуля до 254 и обозначается как ;
- если первый байт установлен в 'FF', то поле длины продолжается последующими двумя байтами со значениями, кодирующими число от нуля до 65535 и обозначается как .
Если равно нулю, то поле значения отсутствует, т.е. информационный объект является пустым. В противном случае (0), поле значения состоит из последовательных байтов.
5.2.2 Информационный объект BER-TLV
Каждый информационный объект BER-TLV состоит из двух или трех последовательных полей (см. базовые правила кодирования АСН.1 по ИСО/МЭК 8825-1): обязательного поля тега, обязательного поля длины и условного поля значения.
Поле тега состоит из одного или большего числа последовательных байтов. Оно указывает класс и кодирование и кодирует номер тега. Значение '00' является недействительным для первого байта полей тега (см. ИСО/МЭК 8825-1).
Поле длины состоит из одного или большего числа последовательных байтов. Оно кодирует длину, т.е. число .
Если равно нулю, то поле значения отсутствует, т.е. информационный объект является пустым. В противном случае (0), поле значения состоит из последовательных байтов.
5.2.2.1 Поля тегов BER-TLV
Стандарты серии ИСО/МЭК 7816 поддерживают поля тегов из одного, двух или трех байтов; более длинные поля тегов зарезервированы для использования в будущем.
Биты 8 и 7 первого байта поля тега указывают класс:
- значение 00 указывает информационный объект универсального класса;
- значение 01 указывает информационный объект класса приложения;
- значение 10 указывает информационный объект контекстно-зависимого класса;
- значение 11 указывает информационный объект приватного класса.
Бит 6 первого байта поля тега указывает кодирование:
- значение 0 указывает простое кодирование информационного объекта, т.е. поле значения не кодировано в BER-TLV;
- значение 1 указывает составное кодирование информационного объекта, т.е. поле значения кодировано в BER-TLV.
Если биты с 5 по 1 первого байта поля тега не все установлены в состояние 1, то они должны кодировать номер тега от нуля до тридцати, при этом поле тега состоит из единственного байта.
В противном случае (биты с 5 по 1 установлены в состояние 1) поле тега должно продолжаться на один или большее число последующих байтов:
- бит 8 каждого последующего байта, за исключением последнего байта, должен быть установлен в состояние 1;
- биты с 7 по 1 первого последующего байта не должны быть все установлены в состояние 0;
- биты с 7 по 1 первого последующего байта, сцепленные с битами с 7 по 1 каждого из остальных последующих байтов, включая биты с 7 по 1 последнего байта, должны кодировать номер тега.