Java Card: проблемы с выбором приложения с помощью APDUtool - PullRequest
0 голосов
/ 25 сентября 2010

Я использую Eclipse с EclipseJCDE.

Я сделал простой апплет java-карты в виде файла .cap для установки на симуляторе. Я не знаю, если установка не удалась, потому что сценарий загрузки - это набор команд ADPU, которые я не понимаю. Есть ли способ узнать, какие апплеты в данный момент находятся на симуляторе и каковы их AID?

Затем я создал скрипт для ADPUtool всего одной командой, выбрав апплет. Согласно файлу .jca в моем проекте.

  • ПОМОЩЬ для моего апплета:

    0x1:0x2:0x3:0x4:0x5:0x6:0x7:0x8:0x9:0x0:0x0.

  • Команда, которую я сделал для выбора апплета:

    0x00 0xA4 0x04 0x00 0x0b 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0x0 0x0

0x00 0xA4 0x04 0x00 в начале для команды выбора, затем 0x0b для длины, чем AID, а затем 0x0 в конце для байта Le, который, я думаю, не имеет значения для этой команды , Когда я запускаю этот скрипт с помощью инструмента ADPU, я получаю следующее:

  • CLA: 00
  • INS: a4
  • P1: 04
  • P2: 00
  • Lc: 0b 01 02 03 04 05 06 07 08 09 00 00
  • Le: 00
  • SW1: 6d
  • SW2: 00

Я считаю, что SW1 и SW2 являются ответом на мою команду, и я думаю, что 6d означает, что он не нашел или не смог загрузить апплет. Что я делаю не так?

1 Ответ

2 голосов
/ 22 января 2011

6D00 означает неправильную инструкцию (байт INS 'A4' не существует в классе '00').

Разместите полный след APDU после ATR, иначе я рекомендую проверить раздел 10 из http://www.etsi.eu/deliver/etsi_ts/102200_102299/102221/08.02.00_60/ts_102221v080200p.pdf,например.

...