I'm in the process of developing an applet to reside and run on Java Cards, and I've been evaluating different cards. I have a bunch of GemaltoXpress cards with 32kb of EEPROM, but despite doing my best, I haven't been able to upload even an empty applet to them. I'm using Global Platform for SmartCardIO Java SDK library to communicate with cards. My applet looks like this:
package test.package;
import javacard.framework.APDU;
import javacard.framework.Applet;
public class TestApplet extends Applet {
public static void install(byte[] bArray, short bOffset, byte bLength) {
new TestApplet();
}
/**
* Only this class's install method should create the applet object.
*/
protected TestApplet() {
register();
}
public void process(APDU apdu) {
byte[] buffer = apdu.getBuffer();
}
}
But this fails to upload onto GemaltoXpress cards with SW12=0x6985 right after the first 80 E8 00 00 FF ...
APDU. I'm compiling my applet against JAVA Card Kit 2.2.1 with -source 1.2 -target 1.1
parameters passed to javac
. My .opt
file looks like this:
-nobanner
-out EXP JCA CAP
-exportpath C:\java_card_kit-2_2_1\api_export_files
-d ..\dist
-applet 0x00:0x00:0x50:0x50:0x50:0x50:0x50:0x50:0x50:0x50:0x50:0x00 test.package.TestApplet test.package
0x00:0x00:0x50:0x50:0x50:0x50:0x50:0x50:0x50:0x50:0x50 1.0
I'm puzzled as to why GemaltoXpress cards don't like this applet, while NXP's SmartMX cards are fine with it. Am I missing something? Is there a special requirement when you develop for GemaltoXpress?