在JavaCard上安装扩展小程序

时间:2015-10-24 14:36:17

标签: applet javacard globalplatform

如何将扩展的Java-Card-applet部署到我的卡上? 到目前为止,我只处理经典applet并在OS X下使用GlobalPlatformPro进行安装。

但是,当我尝试安装扩展小程序时(使用gp -install KCIdentity.eap),它失败并显示以下消息:

Exception in thread "main" java.lang.RuntimeException: Could not figure out the package name of the applet!
at pro.javacard.gp.CapFile.<init>(CapFile.java:94)
at pro.javacard.gp.CapFile.<init>(CapFile.java:65)
at pro.javacard.gp.GPTool.main(GPTool.java:441)

有谁知道如何将我的applet部署到我的卡上(理想情况下使用OS X,但Debian或Windows也可以)?

编辑:链接到GlobalPlatformPro:https://github.com/martinpaljak/GlobalPlatformPro

更新: 这与扩展的APDU无关,而与Java-VM版本无关。经典applet使用版本2.x,而扩展applet使用版本3.y. NetBeans将扩展的applet打包在一个似乎不受支持的* .eap文件中......但是我会看看是否可以将它打包在* .cap文件中。重命名不起作用......

1 个答案:

答案 0 :(得分:1)

我想用&#34;扩展applet&#34;您正在引用扩展长度APDU的小程序。要使用扩展长度的APDU,Applet必须实现标准javacard包的ExtendedLength接口。否则,applet将以0x6700返回到扩展的长度APDU。

但是,GP说无法确定软件包名称,所以我认为您没有正确转换/编译CAP文件。因此,您应该检查编译过程。

我认为.eap是拼写错误?否则将其更改为.cap,这是将小程序下载到卡上的标准格式。

编辑:在评论中回答。

编辑:原因是该卡不支持连接版本。 Javacard3分为经典版(基本上是Javacard 2.2.2 API的更新版)和连接版(Webserver applets等新机制......)。