ГОСТ Р ИСО/МЭК 7816-4—2013
- первым вхождением должна быть запись с заданным идентификатором и в первой логической пози
ции; последним вхождением должна быть запись с заданным идентификатором и в последней логической
позиции;
- если текущая запись имеется, то следующим вхождением должна быть ближайшая запись с задан
ным идентификатором, но в восходящей логической позиции по отношению к текущей записи; предыду
щим вхождением должна быть ближайшая запись с заданным идентификатором, но в нисходящей логи
ческой позиции по отношению к текущей записи,
- если текущая запись отсутствует, то следующео вхождение должно быть эквивалентно первому
вхождению; предыдущее вхождениедолжно быть эквивалентно последнему вхождению;
- значение ноль должно относиться к первой, последней, следующей или предыдущей записи в
порядке нумерации, независимоот идентификатора записи.
7.3.2 Общие положения
Любая команда из этой группы должна быть прервана, если она применяется к файлу EF, не поддер
живающему записи. Команда может быть выполнена в EF, только если состояние защиты удовлетворяет
атрибутам секретности, определенным для функций; считывания, записи, присоединения, обновления,
стирания, поиска, активирования или дезактивирования.
Записи в EF могут поддерживать состоянияжизненного цикла записи. В таком случае обычнодезак
тивированные записи не имеют доступа с помощью команд READ RECORD. WRITE RECORD. ERASE
RECORD и APPEND RECORD. Если такие команды используются, то соответствующие команды возвра
щаются с байтами состояний ’6287’ (как минимум одна из записей, к которой обращаются, дезактивирова на).
Кроме того, дезактивированные записи должны итерироваться вовремя выполнения команды SEARCH
RECORD. Дополнительные подробности и исключения из основных правил, изложенных выше, даются в
следующих подразделах.
Две команды из этой группы (считать, обновить) могут использовать нечетный код INS (поля данных,
закодированные в BER-TLV) для инициирования действия частиданной записи (неполное считывание, не
полное обновление). Далее смещение должно обращаться к каждому байту внутри записи: от нуля до
первого байта записи, смещение увеличивается на единицу для каждого последующего байта записи.
Обращение к байту, не содержащемуся в записи, является ошибкой. При необходимости, элемент данных
«смещение» бинарно закодирован и связан с тегом ’54’. Если данные присутствуют в поле данных коман ды
или ответа, то онидолжны быть инкапсулированы в произвольный информационный объект с тегом ‘53’ или
73’.
Каждая команда из этой группы может использовать короткий идентификатор EF. Если процесс за
вершен. то идентифицируемый EF становится текущим и указатель записи возвращается в исходное
состояние. Если во время вызова команды имеется текущий EF. то процесс может завершиться без указа
ния EF (путем установки соответствующих пяти бит на 0).
Р1. Каждый номер записи или идентификатор — это число от одного до 254. закодированное с помо
щью значения Р1 от ’01’ до ’FE’. Ноль (закодированный как ’00’) зарезервирован для особого назначения.
255 (закодированное, как*FF’) зарезервировано для использования вбудущем.
Р2. Биты с 8 по 4 представляют собой короткий идентификатор в соответствии с таблицей 47. Биты с
3 по 1 зависят от команды.
Т а б л и ц а 47 — Короткий идентификатор в Р2
Ь8Ь7Ь6Ь5Ь4ЬЗ Ь2ЫСмысловое содержание
0000
0———
Текущий EF
Не все равны
———
Короткий идентификатор EF (число от нуля до тридцати)
1
111
1
———Зарезервировано для использования в будущем
В этой группе команд SW1-SW2, установленные на ’63СХ’, указывают на успешный обмен состояний
памяти, но после использования внутренней программы повторений. ’X’ > ‘0’ указывает число повторных
попыток: ’X’ = ’0’ означает, что счетчик не предусмотрен.
7.3.3 Команда READ RECORD(S)
Поле данных ответа передает содержимое (или его части) указанной(ых) записи(ей) (или начальной
части одной записи)файла EF.
49