2010-09-23 12 views
4

我當前正在一個需要我將JavaCard應用程序Applet(.cap)文件加載到JavaCard的項目中。我們的框架基於Visual C++和PCSC,因此我們需要將相同的applet加載到一系列JavaCards中。有誰知道這可以如何處理?我的意思是,我應該從哪裏開始。謝謝!如何以編程方式使用Visual C++/PCSC加載Java卡小程序(.cap文件)

+0

W看起來這是凝灰岩,我不想回答我自己的問題,但到目前爲止,我發現了GpShell:http://sourceforge.net/projects/globalplatform/files/及其API,但API非常複雜爲了快速掌握,所以我打算使用從Visual C使用ShellExecuteEx向其傳遞SHELLEXECUTEINFO結構來使用它。我正在學習如何編寫腳本,並且我已經有了一個PCSC閱讀器框架,但似乎GPShell可以在沒有API的情況下連接到它。更多信息會非常感謝。 – zlogdan 2010-09-29 13:03:10

回答

3

你是對的,這不是一件小事。

有不同javacards之間的差異,但一般你需要做4兩件事:

  • 初始化卡安全通信(因爲很多javacards是「全球平臺」牌,他們需要一個安全通道)
  • 發送一個命令說:「我想安裝一個小程序」
  • 發送二進制數據才能進行安裝
  • 發送命令給applet的「實例」 applet的二進制數據發送

我建議最初使用eclipse插件安裝小程序,因爲您可以看到插件生成的APDU執行上述步驟。一旦知道了必須發送的APDU命令來安裝小程序,就可以使用C++代碼中的PCSC界面直接發送這些命令,以便在大量卡上自動安裝。

我的公司製作了一個名爲Card Boss的網絡瀏覽器插件,用於通過瀏覽器進行這種事情(通過pcsc進行卡片通信) - 您可以使用一個網頁,您可以在其中輸入自己的APDU並將它們發送到卡上如下網址:

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 
+0

我已經使用了Sun的javacard包和它的一個bat腳本來生成這些APDUS,但是我停在那裏,因爲我不確定那些命令是否正常,現在我知道他們是感謝:-)我正在更新這個代碼否則就離開了公司,看起來他已經做了所有事情,甚至是安全通道,但他依賴於自己的腳本文件,這是非常不同的。我想我需要弄明白。作爲它的關鍵。但是,男人,你讓我跳得更遠! – zlogdan 2010-09-30 16:43:32

相關問題