【问题标题】:How to store data on javacard?如何将数据存储在javacard上?
【发布时间】:2011-12-26 06:36:39
【问题描述】:

我正在试验 JavaCard 的小程序 - 它是非常简单的 SCWS serverlet(基本上来自 Gemalto Dev Suite 的模板)。我希望它在卡上存储一些数据 - 怎么做?我只找到了一些关于线性和循环文件的理论资料。

//编辑

我设法找到了这样的东西:

private byte createfile()
    {
        try{
            AdminFileView uiccAdminFileView = AdminFileViewBuilder.getTheUICCAdminFileView(JCSystem.CLEAR_ON_RESET);
            if(uiccAdminFileView == null){
                return 'a';
            }
            uiccAdminFileView.select((short)0x7F60);
            EditHandler editHandler = (EditHandler) HandlerBuilder.buildTLVHandler(HandlerBuilder.EDIT_HANDLER,
                    (short) 50);
            editHandler.clear();
            editHandler.appendArray(CreateEF, (short) 0,(short) CreateEF.length);
            uiccAdminFileView.createFile(editHandler);
            data[0] = (byte) 0x12;
            data[1] = (byte) 0x34;
            data[2] = (byte) 0x56;
            uiccAdminFileView.select((short)0xEE00);
            uiccAdminFileView.updateBinary((short) 0, data, (short)0, (short)3);
        } catch(UICCException e){

            return (byte)e.getReason();
        }
        return 'b';
    }

但此时它每次都返回“a”——据我所知,它与小程序的访问权限有关。

【问题讨论】:

  • 尝试在这里而不是在这里获得支持:developer.gemalto.com/nc/forums.html
  • 1.你用UICC卡还是不用? 2、你是否设置了正确的小程序特定安装参数?
  • 你还活跃在 SO 中吗?可以给我你的电子邮件地址吗?

标签: smartcard sim-card javacard


【解决方案1】:

Java Card 中曾经有一个基于 ISO 7816-4 文件的 API,但很久以前就已经沉没了。现在你只需要自己编程。您至少需要方便地使用 ISO 7816-4 (2005) 标准才能使任何东西都与基于文件的卡远程兼容。

真正的“乐趣”始于您必须通过安全的消息传递通道从超过 32K 的偏移量发送文件数据,同时注意文件选择和访问权限。对于任何阅读这个老问题的答案的人:祝你好运 - 并且知道它可以完成。

【讨论】:

  • 真正的“乐趣”始于拥有.... 为什么?对不起,我没看懂你的回答。请您再解释一下好吗?
  • 我们现在在 JavaCard 上没有 ISO 7816 API 吗?
  • ISO 7816 包含很多东西,但如果您指的是文件系统 API,那么没有。这就是为什么让这样的事情发挥作用是有趣的。
  • @MaartenBodewes 你为什么不分享处理那个东西的源代码?所以,您知道开发此功能的问题存在,您开发了工作代码(我猜)并且您没有以任何方式分享它 - 这是正确的吗?请发布解决方案,甚至是一些如何解决问题的线索,以防您真的自己解决了这个问题。
  • @im_infamous 我还没有为自己实现它,我。不适合分享 - 抱歉。
【解决方案2】:

对于“真正的”智能卡,您可以通过称为 APDU 命令的标准来创建/编辑/删除数据。为此,卡上必须安装一个操作系统,能够处理 APDU 以创建/更新/读取文件等。如果卡完全是原始的(即它里面真的什么都没有),你必须使用卡的API 或阅读规范并自己做所有事情(很可能你会处理组装)。我不知道你的卡是什么,所以我不能给出具体的说明,请阅读你的手册。

【讨论】:

  • 目前我正在使用 Gemalto 包中的模拟器。它模拟了 3G 移动网络中的整个链条,USIM 卡标记为“带有标准化 SCWS 的 NFC”它通常在手机模拟器中工作,所以我认为它并不完全清楚。我会检查是否可以找到更多相关信息。
【解决方案3】:

【讨论】:

  • 谢谢,但我已经看到了。我正在使用的第一行代码(它也已在 gemalto 论坛上找到)几乎相同 - 问题是它每次都返回 null 并且我无法创建 AdminFileView 的实例。
猜你喜欢
  • 2017-07-19
  • 2014-04-24
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
相关资源
最近更新 更多