2016-04-07 23 views
3

ich ein einfaches Applet auf einer Java Card zu installieren versuchen, aber ich habe den Fehler:Befehl nicht erlaubt - Nutzungsbedingungen nicht erfüllt, wenn Applet Installation

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

Der Code scheint, ist auf Eclipse-Simulator zu arbeiten, aber Wenn ich es konvertieren und die CAP-Datei an die Karte senden möchte, erhalte ich den obigen Fehler. Ich benutze GPShell für die Installation des Applets. Das Installationsskript ist unten aufgeführt

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 

Das SDK für Java Card ist Version 2.2.2 und für die Umwandlung von I verwendet Eclipse JCDE0.2. Ich habe die gleiche Art von Fehler, wenn ich versuche, ein anderes Applet zu installieren. Ich habe auch versucht, das Java Card SDK auf Version 2.1.1 herunterzustufen, aber das hat mein Problem nicht gelöst. Ich habe unten einen Screenshot mit dem Problem beigefügt.

enter image description here

+0

Sind Sie sicher, dass Ihre Smartcard eine Gemalto-Karte ist? Dieser Fehler bedeutet entweder, dass Ihr Authentifizierungsschlüssel nicht korrekt ist (Ihre Karte ist keine Gemalto-Karte oder der Authentifizierungsschlüssel wurde bereits geändert) oder Ihre Karte ist gesperrt (bei 10 falschen Versuchen zur Authentifizierung). Wie auch immer, GPShell ist ein altes Tool, ich schlage vor, stattdessen [GlobalPlatformPro] (https://github.com/martinpaljak/GlobalPlatformPro/releases) zu verwenden. – Abraham

+0

Ja, ich bin mir sicher. Tatsächlich gelingt es mir, eine helloworld.cap auf der Karte zu installieren. Es scheint, dass die Art, wie ich die .cap erzeuge, falsch zu sein scheint. – Marga

+0

Ah, vielleicht! Ich habe mich in Bezug auf das Statuswort geirrt. '0x69 82' ist für falsche Authentifizierung. Dein ist '0x6985'. Sind Sie sicher, dass die Version der 'CAP'-Datei von Ihrer Karte unterstützt wird? – Abraham

Antwort

2

ich es geschafft, das Problem durch die Herabstufung von Java Card 2.2.2 auf Java Card 2.2.1 zu lösen. Es scheint, dass ein Kompatibilitätsproblem zwischen Java Card SDK und GpShell-Version, die ich verwendet habe, war.

2

Der Fehler beim Hochladen des Applet-Codes (Befehl LOAD) zeigt an, dass der Verifizierungsprozess auf der Karte etwas in Ihrer Applet-Codebasis entdeckt hat, das er nicht akzeptiert (z. B. Verwendung einer Framework-Klasse, die nicht existiert). Verwendung einer Methode, die nicht existiert, einer ungültigen Anweisung, etc.)

Dies entspricht auch Ihrer Erfahrung, dass ein Downgrade von Java Card SDK 2.2.2 auf Java Card SDK 2.2.1 funktioniert. Übrigens. GPShell kümmert sich nicht um die Java Card-Version, es ist die Karte, die diesen Fehler erzeugt.