2016-04-07 5 views
3

Я пытаюсь установить простой апплет на карте Java, но я получил ошибку:Команды не допускается - Условия использования не удовлетворено при установке апплета

load returns 0x80206985 Command not allowed - Conditions of use not satisfied when installing applet

код кажется работает на тренажере в Eclipse, но когда я хочу преобразовать его и отправить файл CAP на карту, я получаю вышеуказанную ошибку. Я использую GPShell для установки апплета. Сценарий инсталлятор приведен ниже

mode_201 
gemXpressoPro 
enable_trace 
enable_timer 
establish_context 
card_connect 
select -AID A000000018434D00 
open_sc -security 3 -keyind 0 -keyver 0 -key 47454d5850524553534f53414d504c45 
install -file sid.cap 
card_disconnect 
release_context 

SDK для Java Card является версия 2.2.2, и для преобразования я использовал Eclipse, JCDE0.2. У меня такая же ошибка, когда я пытаюсь установить любой другой апплет. Я также попытался понизить SDK Java Card до версии 2.1.1, но это не решило мою проблему. Я приложил ниже скриншот с этой проблемой.

enter image description here

+0

Вы уверены, что ваша смарт-карта является карточкой Gemalto? Эта ошибка означает, что либо ваш ключ проверки подлинности неверен (ваша карта не является картой Gemalto, либо уже изменен ключ аутентификации), либо ваша карта заблокирована (К 10 ошибочным попыткам аутентификации). В любом случае, GPShell - это старый инструмент, поэтому я предлагаю вам использовать [GlobalPlatformPro] (https://github.com/martinpaljak/GlobalPlatformPro/releases). – Abraham

+0

Да, я уверен. Мне удалось установить helloworld.cap на карточке. Кажется, что способ, которым я генерирую .cap, кажется неправильным – Marga

+0

А, может быть! Я ошибался в слове Status. '0x69 82' за неправильную аутентификацию. Ваш '0x6985'. Вы уверены, что версия файла CAP поддерживается вашей картой? – Abraham

ответ

2

мне удалось решить эту проблему путем понижения рейтинга с Java Card 2.2.2 для Java Card 2.2.1. Похоже, что проблема совместимости между Java Card SDK и версией GpShell, которую я использовал.

2

Ошибка, полученная при загрузке кода апплета (команда LOAD), указывает на то, что процесс проверки на карте обнаружил что-то в вашей базе кода апплета, которую он не принимает (например, использование класса фреймворка, который не существует, использование метода, который не существует, недействительная инструкция и т. д.)

Это также соответствует вашему опыту, что работа над преобразованием Java Card SDK 2.2.2 в Java Card SDK 2.2.1. Btw. GPShell не заботится о версии Java-карты, именно эта карта генерирует эту ошибку.