0

如何将扩展的 Java-Card-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)

有谁知道我如何将我的小程序部署到我的卡上(最好使用 OS X,但 Debian 或 Windows 也可以)?

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

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

4

1 回答 1

1

我猜“扩展小程序”是指扩展长度 APDU 的小程序。要使用扩展长度的 APDU,Applet必须实现ExtendedLength标准 javacard 包的接口。否则,applet 将返回0x6700到扩展长度 APDU。

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

我想这.eap是一个错字?否则将其更改为.cap,这是将小程序下载到卡的标准格式。

编辑:在评论中回答。

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

于 2015-10-24T20:05:52.443 回答