在 JavaCard 上安装扩展小程序

Install extended applet on JavaCard

如何将扩展的 Java-Card-applet 部署到我的卡上? 到目前为止,我只处理过经典小程序,并使用 GlobalPlatformPro 在 OS X.

下安装它们

但是,当我尝试安装扩展小程序(使用 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 也可以)?

编辑:Link 到 GlobalPlatformPro:https://github.com/martinpaljak/GlobalPlatformPro

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

我猜 "extended applet" 你指的是扩展长度 APDU 的小程序。要使用扩展长度的 APDU,Applet 必须实现标准 javacard 包中的 ExtendedLength 接口。否则小程序将 return 和 0x6700 扩展长度 APDU。

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

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

编辑:在评论中回答。

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