是否可以用Java之外的任何其他语言编写支持“Java Card”的智能卡?

时间:2015-05-09 23:28:45

标签: c embedded smartcard javacard

我有一张支持Java Card的智能卡和一个读卡器,由我的实验室指导员提供。我应该使用Java Card 2.1.1 API做一个项目。

我不喜欢Java Card API。

是否可以使用C之类的任何其他语言对我的智能卡进行编程?

1 个答案:

答案 0 :(得分:2)

一般答案:

不幸的是,目前除了使用Java Card API编程Java Card兼容卡之外别无其他方法。

详细答案:

某种卡片有一种名为“Secure Box”的机制。如JCOP v2.4.2 r3 card Security target中所述:

  

Secure Box是一种允许运行非认证第三的构造   派对本机代码并确保此代码不会受到伤害,影响或   操纵JCOP 2.4.2 R3操作系统或任何小程序   由操作系统执行。本机代码的分离   来自其他代码的Secure Box和/或驻留在硬件上的数据是   由经过硬件认证的硬件MMU确保   评价。

Herehere您可以看到有关Secure Box的一些信息。据我所知,您可以用 C Assembly 语言编写应用程序,并将它们上传到Secure Box上。但这真的很棘手,我想最后你会改变你对 Java Card API 的看法,你会决定尝试不仅喜欢它,还喜欢它! ;)

请注意,与Java Card相比,还有一些名为“Native Cards”的其他类型的卡。此卡中的操作系统不是Java Card Runtime Environment / Virtual Machine。这些卡具有专有/制造商特定的方式和语言(通常为C或汇编)来开发应用程序。但它并不像Java Card applet开发那么容易。你会做出决定......再次爱上它:D

更新:(感谢亲爱的Vojta)

对不起,我忘记了。正如Vojta在评论中提到的,最着名的本地卡类型之一是MULTOS。您可以使用 C,Java,汇编和其他语言为这些卡编写程序,之后必须使用 SwiftCard将它们转换为 MELL (MULTOS卡的语言) 工具(由SwiftC和SwiftJ组成......)。一些好的文档herehere