我正在开发一个在 Java Card 上驻留和运行的小程序,并且我一直在评估不同的卡。我有一堆带有 32kb EEPROM 的 GemaltoXpress 卡,但尽管我尽了最大努力,但我什至无法向它们上传一个空的小程序。我正在使用Global Platform for SmartCardIO Java SDK 库与卡进行通信。我的小程序如下所示:
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();
}
}
但这无法在第一个80 E8 00 00 FF ...
APDU 之后立即上传到 SW12=0x6985 的 GemaltoXpress 卡。我正在针对 JAVA Card Kit 2.2.1 编译我的小程序,并将-source 1.2 -target 1.1
参数传递给javac
. 我的.opt
文件如下所示:
-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
我很困惑为什么 GemaltoXpress 卡不喜欢这个小程序,而 NXP 的 SmartMX 卡却很好。我错过了什么吗?为 GemaltoXpress 开发时是否有特殊要求?