java - 在 Jcard 上部署 javacard 小程序

标签 java smartcard javacard apdu smartcard-reader

最近几天我一直在做一个java card 项目,今天我得到了一个读卡器和几张卡片,并被要求部署applet 对它们进行测试,我基本上不知道如何在卡上部署应用程序,到目前为止,我一直在使用 CREF 模拟器,并且一切正常太好了,现在我想从以前已经使用过这项技术的人那里得到一些指导或建议,我有一个 Omnikey 3821 阅读器,我的卡片是白色和空白的,我没有更多关于它们的信息,我尝试使用以下应用测试它们:

  • JSmartCard 浏览器
  • JSmex
  • APDUS扫描器

它们被检测到,在 JSmex 中它被检测为未知卡片(不是 java 卡片),任何人都可以告诉我任何其他与卡片交互的方式吗?获取有关它们的更多信息?或者如何在它们上部署 .cap 文件并让其他应用程序与它们交互?

谢谢

PS:我正在使用 eclipse 和 javacard 2.2.2

编辑:

  • 我想我找到了一个很有前途的线索,global plateform解决方案,但现在我在尝试在卡上安装 .cap 文件时遇到错误,根据我从卡上获得的 ATR,这是我的 Card Model

编辑(1):

我现在正在使用 GPSShell,我成功地安装了一个示例 hello world cap 文件,但是当我尝试安装一个简单的计数器小程序时,我已经在 CREF 上尝试过,就像我安装 hello word 小程序一样,我得到以下信息错误:(6985:不允许命令 - 不满足使用条件) 我读到它可能与版本相关,我使用了一个 eclipse cap navigator 插件,我得到了以下结果:主要版本 = 2,次要版本 = 1,这是否意味着版本是 2.0 - 2.1? 但是当我尝试在我生成的计数器上限文件上运行相同的导航器时,即使我使用的是 JCDK 2.2.2,我也得到了相同的结果

顺便说一句,当我尝试下载 hello world 源代码并将其编译成 .cap 并安装它时,我遇到了同样的错误,那么这是我的环境吗?

最佳答案

尝试使用 NXP 的“NFC Taginfo”Android 应用程序获取有关您的卡的更多信息。在为 Javacard 开发时,它对我很有帮助。它将显示有关您的智能卡的大量信息。如果可以,请在此处显示您在扫描卡时从该应用程序获得的数据。

假设它是一个 JCOP Javacard,您总是可以使用 JCOP 工具来加载 .cap 文件。这是一个非常简单的过程。你必须先有一个 NXP Docstore帐户,然后发送电子邮件至 tools.jcop@nxp.com 索取 JCOP 工具。安装 JCOP 工具后,您可以使用 Eclipse 插件加载小程序并将其安装到 javacard 中。

关于初始化更新/外部验证

如果您的 Javacard 兼容 GlobalPlatform(您将使用 NFC Taginfo 了解它),这意味着您将必须使用 GlobalPlatform 命令来加载和安装小程序。第一步是在卡外应用程序(您的 omnikey 读卡器)和卡之间创建安全通道。这是通过 INITIALIZE UPDATE 和 EXTERNAL AUTHENTICATE 完成的。

关于java - 在 Jcard 上部署 javacard 小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594734/

相关文章:

netbeans - 如何用Netbeans模拟java卡小程序?

java - 卡支持的算法列表?

java - 如何在 GridBagLayout 中左对齐组件?

java - 如何用Java编写HashMap的put方法?

java - OpenCL:区分计算失败与 TDR 中断

java - 使用 Java 的 SunMSCAPI/Windows-MY 访问智能卡证书以进行 TLS/SSL 连接并进行客户端身份验证

java - eVRC 智能卡

bouncycaSTLe - Javacard KeyAgreement 与 BouncyCaSTLe KeyAgreement 不同

javacard - 如何自定义新安装的补充安全域(SSD)?

java - 有没有一种方法可以仅在 Java 中从指针创建直接的 ByteBuffer?