2017-02-03 19 views
0

Я хочу прочитать файл с смарт-карты размером более 32k. Я знаю, что команда READ BINARY APDU может иметь смещение в P1 и P2 до 32767. Но что, если мой файл больше? Есть ли способ прочитать полный файл? Спасибо!Прочитайте большой двоичный файл (> 32k) с смарт-карты с помощью команды READ BINARY APDU

ответ

2

Более новые версии ISO 7816, часть 4, предлагают нечетный вариант INStruction (то есть INS = 0xB1), где необходимо указать смещение DO (тег 0x54) в поле данных команд. К счастью, длина этого DO является переменной, поэтому могут быть указаны действительно большие смещения. Однако команды с нечетными командами все еще являются экзотическим прикосновением, но ни одна строгая спецификация не запрашивает их, но, несомненно, карта, поддерживающая большие файлы, скорее всего, поддержит этот вариант.

Единственный запасной момент, о котором я знаю, указывает 0x7FFF как начальное смещение и как большую (расширенную длину) LE, как позволяет карта, но это может быть недостаточно для значительно больших файлов.

+0

Большое спасибо! Это помогло мне. Я полагаю, что моя ревизия ISO с 2005 года включает в себя байт Odd Ins. Думаю, мне нужно будет получить версию 2013 года. Благодаря! – tzippy

+0

@tzippy Добро пожаловать (как бы принял этот ответ). На самом деле версия 2005 года уже содержит все, что требуется, даже если особо не подчеркивается, ср. таблица 42 (* Чтение двоичного файла *), а также раздел * General * 7.2.2. Конечно, всегда стоит иметь копию текущей версии стандарта. – guidot