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