簡體   English   中英

將applet安裝到Java卡的APDU命令序列是什么?

[英]What is the sequence of APDU commands to install applet to java card?

我有一個.CAP文件(小程序),我想將它安裝到我的Java卡。 我知道我可以使用像GPShell或apdutool(來自JCDK)這樣的工具來做到這一點,但我想自己復制安裝過程。

令人困惑的是,在GP標准中,安裝過程是:APDU命令INSTALL [for load]后跟多個LOAD命令,然后是INSTALL [for install]命令。

雖然oracle文檔提出了用於安裝.CAP文件的不同APDU命令序列:選擇(頒發者安全域?),CAP開始,組件## Begin + Data + End(對於每個組件),CAP End,Create Applet。

這兩種安裝applet的方法是否相同?

LOAD命令DATA字段包含什么? GP標准沒有指定,我知道從.CAP文件發送原始字節是錯誤的。 我使用GPShell成功安裝了applet,但LOAD命令的DATA字段對我沒有任何意義。 GPShell輸出

對於oracle方法,我使用來自Java Card Developement Kit的scriptgen來傳遞APDU命令,但來自這些命令(B0,B2,B4,BC,BA)的INS字節沒有GP引用。 scriptgen輸出

雖然oracle文檔提出了用於安裝.CAP文件的不同APDU命令序列:選擇(頒發者安全域?),CAP開始,組件## Begin + Data + End(對於每個組件),CAP End,Create Applet。

在安裝applet之前,需要選擇卡管理器(Issuer安全域 - Root),因為它是在卡上加載和安裝applet的負責組件。 另請注意,您需要通過建立安全通道(最好是SCP02)對卡管理器進行身份驗證。

執行以下APDU序列來安裝applet: -

  1. 選擇頒發者安全域(ISD)。 00 a4 04 00 Lc AID_ISD

  2. 使用ISD進行身份驗證。

    設置SCP02(參考命令初始化更新,外部認證)。 在這里,您需要卡的3DES鍵。 請參閱隨卡提供的文檔。

  3. 發送apdu,安裝[加載]。

令人困惑的是,在GP標准中,安裝過程是:APDU命令INSTALL [for load]后跟多個LOAD命令,然后是INSTALL [for install]命令。

  1. 發送apdu,加載塊。

    您將擁有的applet的.cap文件是其組成CAP文件的壓縮文件( http://pfa12.free.fr/doc_java/javacard_specifications/specs/jcvm/html/JCVM06cap.html )。 因此,您需要將每個CAP文件逐個發送到卡。

    加載(Header.cap),加載(Directory.cap)......等

  2. 發送apdu,安裝[安裝]。 安裝完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM