2017-01-06 2 views
3

Я пытаюсь перечислить апплеты/пакеты на Java-карте. Я использую следующую команду APDU, чтобы получить список:Как получить дальнейшие данные с карты JavaCard после статуса 0x6310?

 
80 F2 E0 00 02 4F 00 00 

Этих команда возвращает слово состояния 0x61xx, поэтому я посылаю команду GET RESPONSE для xx байт:

 
00 C0 00 00 xx 

Это дает мне xx байт данных и слово состояния 0x6310 («больше доступных данных»). Что мне следует отправить дальше, чтобы получить дополнительные данные, как указано в слове состояния?

APDU след:

 
[SEND] 80 F2 E0 00 02 4F 00 00 
[RECEIVE] 61 F2 
[SEND] 00 C0 00 00 F2 
[RECEIVE] <F2 bytes of data> 63 10 
[SEND] ??? 
+1

Ну, может быть, вы не получили все байты? Карта может вернуть меньше байтов, Ne - это * максимальный * объем данных ответа. Если вам не удается сразу, попробуйте еще раз. ** Некоторые трассы APDU будут приятными **. –

+0

[ОТПРАВИТЬ] 80 F2 E0 00 02 4F 00 00 [ПОЛУЧИТЬ] 61 F2 [ОТПРАВИТЬ] 00 C0 00 00 F2 [ПОЛУЧИТЬ] F2 Байт данных и результат 63 10 [ОТПРАВИТЬ] ?? –

+0

Где была определена инструкция F2? Байт класса 80 указывает на проприетарную команду, поэтому ISO 7816 здесь не слишком помогает ... –

ответ

1

Глядя на последовательности команда/ответ, который вы показали в вашем вопросе и тот факт, что вы перечисляете апплеты/пакеты, я предположил бы, что это об управлении карты GlobalPlatform.

Команда, которую вы используете (INS = 0xF2), является командой GET STATUS. P1 = 0xE0 указывает, что вы хотите перечислить домен безопасности, приложения, включая домены безопасности и исполняемые файлы загрузки. P2 = 0x00 указывает, что вы хотите получить первое или все вхождения (т. Е. Вы хотите начать поиск).

Затем вы получаете байты данных 0xF2 в ответ на команду. Слово состояния «6310» определяется спецификацией карты GP, чтобы указать, что доступно больше данных. Следовательно, вам нужно повторить команду GET STATUS, пока вы не получите слово состояния ошибки («9000»). Для повторения команды GET STATUS после условия предупреждения «6310» вам нужно будет изменить P2 на 0x01, чтобы указать, что вы хотите получить следующие вхождения. Следовательно, в ответ на получение статусного слова «6310» вы должны ввести следующую команду:

 
80 F2 E0 01 02 4F 00 00 
Смежные вопросы