我是Java Card开发的新手,我正在尝试开发一个可以选择和读取EF数据的applet。 我想用一些假数据创建EF和DF并将其存储在卡中。然后我会使用我的applet来读取这些数据。 可能吗?如果是这样,我该怎么做? 请帮忙,我搜索了很多,但我没有找到任何解决方案。
非常感谢。
答案 0 :(得分:4)
在很长一段时间内,有一个用于Java Card的文件系统API。但该API已被弃用。这意味着您必须自己实现CREATE FILE
的专有版本以及READ BINARY
和UPDATE BINARY
的ISO版本。如果您不想依赖SFI的隐式选择,您可能还想实现SELECT by ID
。这些命令已在ISO / IEC 7816-4标准(付费软件,但在线提供信息)中定义。您可能希望限制自己实现“透明”EF文件,这些文件只是您在操作系统中习惯使用的二进制文件。
通常文件由EEPROM中的(包含一个)Java Card字节数组(仅new byte[size]
)组成,用于文件和元信息 - 也可能在byte[]
中),如读/写访问条件。这很好,除非你需要超过32Ki的内存,在这种情况下你需要多个字节数组。
DF可能包含EF,密钥,PIN,访问条件等对象。 applet本身是一个名为DF的东西,但你可以创建一个特定的CREATE FILE
来创建DF。您当然也必须在SELECT by ID
内支持DF选择。此外,您应该在瞬态存储器中保留对当前所选DF 和 EF的引用。