2013-10-07 3 views
4

Обычно я пишу Java Card Software с JCOP, но в настоящее время я пробую другие структуры разработки, чтобы получить немного больше информации. Поэтому я использую простой HelloWorld.java, поскольку я начал с этого на JCOP, а также - http://umer555.wordpress.com/2012/05/17/java-card-hello-world-applet/APDUtool создать «апплет» не удается

Теперь я попытался запустить это на NetBeans с помощью Java Card 3.0 (Classic, поэтому, я думаю, он должен работать так же, как 2.2.2), и он работает как заклинание из коробки.

Следующий шаг для меня - это попробовать Eclipse и JCDE. Теперь, создав файл крышки я получаю это как первые три строки (которые отвечают 9000 в APDUTool):

powerup; 
// Select the installer applet 
0x00 0xA4 0x04 0x00 0x09 0xa0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F; 
0x80 0xB0 0x00 0x00 0x00 0x7F; 

В качестве следующего шага я пытаюсь создать свой «HelloWorld» апплет с AID 010203040501

// create HelloWorld applet 
0x80 0xB8 0x00 0x00 0x8 0x6 0x01 0x02 0x03 0x04 0x05 0x01 0x00 0x7F; 

это возвращает

0x80 0xb8 0x00 0x00 0x08 0x06 0x01 0x02 0x03 0x04 0x05 0x01 0x00 0x7f; 
CLA: 80, INS: b8, P1: 00, P2: 00, Lc: 08, 06, 01, 02, 03, 04, 05, 01, 00, Le: 00 
, SW1: 64, SW2: 44 

и JCWDE сообщает "исключение из вызываемой установки() метод: ..."

Итак, из ответа я полагаю, что каким-то образом апплет не загружается в симулятор, но я не знаю, почему это так!

+0

Когда я пытаюсь запустить 'jcwde jcwde.app 'из консоли вместо Eclipse я получаю' java.lang.ClassNotFoundException: helloworld.HelloWorld com.sun.javacard.jcwde.SimulationException' My jcwde.app находится в той же папке, что и HelloWorld.java. – achiever

+0

Трудный вопрос , единственное, что я вижу, это то, что у вас есть шестнадцатеричное значение 7F в конце, которое, похоже, не используется. –

+0

, который используется apdutool для каждого апду! Я не знаю его смысла, но он просто добрый Это нужно! – achiever

ответ

0

В карточке нет «установочного апплета». Существует апплет диспетчера карт, который выполняет все операции системы cad.

Card менеджер AID мне известен, являются:

const 
    VISA_CARDMANAGER_AID = 'A0000000030000'; 
    MASTERCARD_CARDMANAGER_AID = 'A0000000040000'; 
    GEMPLUS_CARDMANAGER_AID = 'A000000018434D00'; 

Является ли ваша карта действительно JCOP один?

Чтобы начать установку апплета, необходимо сначала выполнить команду Install/Load (CLA = 80/84, INS = E6). В вашем случае вы начинаете с 80/84 и B8 по какой-то причине.

После установки/загрузки вам необходимо выпустить команды LOAD для загрузки файла с крышкой на карту.

Пожалуйста, обратитесь к документации GlobalPlatform, чтобы узнать больше о APDU команды (поиск Google для документа под названием «GPCardSpec_v2.2.pdf» или скачать его здесь: http://www.globalplatform.org/specificationscard.asp

+0

Нет, я не использую JCOP для этого, я пытаюсь использовать JCDE-Plugin для Eclipse. С Netbeans или JCOP у меня нет проблем с запуском. – achiever

Смежные вопросы