繁体   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