4

我目前正在进行一个需要我将 JavaCard 应用程序 Applet(一个 .cap )文件加载到 JavaCard 的项目。我们的框架基于 Visual C++ 和 PCSC,所以我们需要将同一个小程序加载到一系列 JavaCard 中。有谁知道这可以如何处理?我的意思是,我应该从哪里开始。谢谢!

4

1 回答 1

3

你说得对,这不是一项微不足道的工作。

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

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

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

我的公司制作了一个名为Card Boss的网络浏览器插件,用于从浏览器执行此类操作(通过 pcsc 进行卡通信) - 您可以使用一个网页,您可以在其中键入自己的 APDU 并将它们发送到以下 URL 的卡:

https://cardboss.cometway.com/content.agent?page_name=Card+Boss+Lab

如果您使用我们的工具,您的小程序安装脚本应该如下所示(注意这是使用默认 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 
于 2010-09-29T22:41:10.177 回答