我目前是一个项目,要求我将Javacard应用程序applet(.cap)文件加载到Javacard。我们的框架基于Visual C ++和PCSC,因此我们需要将相同的小程序加载到一系列JavaCards中。有人知道如何处理吗?我的意思是,我应该从哪里开始。谢谢!

有帮助吗?

解决方案

您是正确的,这不是一项琐碎的工作。

不同的javacards之间存在差异,但是通常您需要做4件事:

  • 初始化与卡的安全通信(因为许多javacard是“全球平台”卡,他们需要安全频道)
  • 发送一个命令,说“我想安装一个小程序”
  • 发送二进制数据以安装要安装的小程序
  • 发送二进制数据后,发送命令以“实例化”小程序

我建议最初使用Eclipse插件安装小程序,因为您可以看到该插件生成的APDU来执行上述步骤。一旦知道必须发送APDU命令才能安装小程序,就可以使用C ++代码的PCSC接口直接发送这些命令,以在大量卡上自动安装。

我公司制作了一个名为的网络浏览器插件 卡老板 对于从浏览器进行此类操作(通过PCSC的卡通信) - 有一个网页可以使用您可以输入自己的APDU并将其发送到Follwing URL的卡片:

https://cardboss.cometway.com/content.agent?page_name = card+boss+lab

如果使用我们的工具,则您的applet安装脚本应该看起来像这样(请注意,这是使用默认JCOP键的JCOP卡的脚本)

    MESSAGE BOX Installing applets...

    INIT CHANNEL 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f, 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f

    // INSTALL CAP: 
    SEND 80 E6 02 00 1D 10 A0 00 00 00 09 00 03 FF FF FF FF 89 10 71 00 01 08 A0 00 00 00 03 00 00 00 00 00 00 

    // LOADING CAP: 
    SEND 80 E8 00 00 FA C4 82 01 03 01 00 25 DE CA FF (snip, I removed a bunch 
of binary data representing the cap file to shorten this post, and you might
need multiple SEND commands because of limits on the size of APDUS)

    // INSTANTIATING Applet
    SEND 80 E6 0C 00 1E 05 63 6F 6D 65 74 07 63 6F 6D 65 74 00 01 05 00 00 00 00 00 01 00 06 C9 04 68 2C 00 03 00 00 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top