Java Card小程序:如何在智能卡中创建EF,DF?

时间:2015-11-20 09:39:21

标签: smartcard javacard

我是Java Card开发的新手,我正在尝试开发一个可以选择和读取EF数据的applet。 我想用一些假数据创建EF和DF并将其存储在卡中。然后我会使用我的applet来读取这些数据。 可能吗?如果是这样,我该怎么做? 请帮忙,我搜索了很多,但我没有找到任何解决方案。

非常感谢。

1 个答案:

答案 0 :(得分:4)

在很长一段时间内,有一个用于Java Card的文件系统API。但该API已被弃用。这意味着您必须自己实现CREATE FILE的专有版本以及READ BINARYUPDATE 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的引用。