簡體   English   中英

如何在javacard上更改applet的生命周期?

[英]How to change an applet's life cycle on javacard?

我已經在智能卡上上傳了一個HelloWorld.cap小程序,當我使用gpj -list命令時,該卡返回以下輸出:

    D:\gpj>java -jar gpj.jar -list
    Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
    Found card in terminal: ACS CCID USB Reader 0
    ATR: 3B 68 00 00 00 73 C8 40 12 00 90 00
     .
     .
     .

    AID: A0 00 00 00 03 00 00 00                       |........|        ISD LC: 1 P
    R: 0x9E

    AID: 11 22 33 44 55 66                             |."3DUf|          App LC: 7 P
    R: 0x00

    AID: 11 22 33 44 55                                |."3DU|           Exe LC: 1 P
    R: 0x00

如您所見,我的applet的生命周期為7,其package的生命周期為7。package和applet的特權均為0x00。 如何更改它們?(PR和LC)

Applet特權和生命周期狀態在GlobalPlatform卡規范中進行了描述,您可以從http://www.globalplatform.org/specificationscard.asp下載這是一個很長的文檔,並不是特別容易閱讀,但是我確實建議您仔細閱讀如果您打算使用智能卡。

它說明了如何為applet分配特權(主要是在安裝時)以及如何在不同的生命周期狀態之間過渡。 例如,它說您的Hello World小程序已經處於SELECTABLE狀態,因此它只能轉換為LOCKED或被刪除。

為了更改LC (生命周期),請使用設置狀態 APDU:

例如 :

OP_READY初始化80 F0 P1 07 |Lc| AID 80 F0 P1 07 |Lc| AID

初始化安全80 F0 P1 0F |Lc| AID 80 F0 P1 0F |Lc| AID

P1 = 40 :適用於應用程序(包括SSD)

P1 = 80 :對於ISD

並且為了更改PR (特權),您應該在gpj install命令中添加-priv參數。

例如: gpj -load helloWorld.cap - install -priv 0x04

http://www.oracle.com/technetwork/java/javacard/javacard1-139251.html#_Lifecycle_of_a

因此,這畢竟不是可以更改的東西,對嗎?

暫無
暫無

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

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