【问题标题】:Install extended applet on JavaCard在 JavaCard 上安装扩展小程序
【发布时间】:2015-10-24 14:36:17
【问题描述】:

如何将扩展的 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 文件中。重命名不起作用...

【问题讨论】:

    标签: applet javacard globalplatform


    【解决方案1】:

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

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

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

    编辑:在 cmets 中回答。

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

    【讨论】:

    • 不,这与扩展 APDU 无关,而是与 Java-VM 版本有关。经典小程序使用 2.x 版,而扩展小程序使用 3.y 版。 NetBeans 将扩展的小程序打包在一个似乎不受支持的 *.eap 文件中......但是我会看看是否可以将它打包在一个 *.cap 文件中。重命名不起作用...
    • 仍然不知道你在做什么。你的意思是经典版和连接版? Jc3 classic 只是 jc2 的继承者,具有更多的 API 调用。如果你的卡不支持最新的 API 安装当然会失败
    • 好的,我想我发现了我们的问题:我指的是这里使用的相同术语; oracle.com/technetwork/articles/javase/javacard3-142122.html#3 看来,扩展版和我的卡不支持的连接版类似...^^ 所以,只需要弄清楚如何使用NetBeans创建一个JC3.y经典小程序...你指出了我的问题,谢谢?
    • 我仍然希望有合理的错误,请在 Github 上使用示例文件(如果可能)或至少跟踪提出问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2014-06-28
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多