【问题标题】:Java Card applet: How to create EFs,DFs in smart card?Java Card 小程序:如何在智能卡中创建 EF、DF?
【发布时间】:2015-11-20 09:39:21
【问题描述】:

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

非常感谢。

【问题讨论】:

  • 你想要什么? Link List 文件结构还是 Array List 文件结构?
  • 我听起来不像你真的想要一个 javacard,因为原生智能卡更接近。此外,applet 读取文件并不常见,这主要是由主机应用程序完成的。
  • 我的目的是创建java卡的文件系统。这些文件系统的数据是我自己定义的。有什么办法吗?

标签: smartcard javacard


【解决方案1】:

在很久以前,有一个用于 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)、访问条件组成。小程序本身是一个命名的 DF,但您可以创建一个特定的CREATE FILE 来创建 DF。当然,您还必须在 SELECT by ID 中支持 DF 选择。此外,您应该在瞬态内存中保留对当前选择的 DF EF 的引用。

【讨论】:

  • 我想说,据我所知,文件系统并没有真正好的免费 java 卡实现。似乎每个人都只是实现了他需要的最低限度,但没有“完全”的免费实现。可能是因为需要更少的代码
  • @PaulBastian 并且有充分的理由。 ISO/IEC 7816-4 包含很多你在大多数情况下确实不需要的绒毛——如果它完全被理解的话。它还包含很多不确定性和空白。我从未见过仅通过实施 ISO 7816 标准即可使用的应用程序——包括基于文件的卡。不过,基本实现会很好。
  • @Maarten Bodewes,非常感谢,对了,你能给出具体的例子或任何教程的链接吗?
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 2012-01-27
  • 2012-10-13
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
相关资源
最近更新 更多