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