如何将扩展的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文件中。重命名不起作用......
答案 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等新机制......)。