[英]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: -
选择颁发者安全域(ISD)。 00 a4 04 00 Lc AID_ISD
使用ISD进行身份验证。
设置SCP02(参考命令初始化更新,外部认证)。 在这里,您需要卡的3DES键。 请参阅随卡提供的文档。
发送apdu,安装[加载]。
令人困惑的是,在GP标准中,安装过程是:APDU命令INSTALL [for load]后跟多个LOAD命令,然后是INSTALL [for install]命令。
发送apdu,加载块。
您将拥有的applet的.cap文件是其组成CAP文件的压缩文件( http://pfa12.free.fr/doc_java/javacard_specifications/specs/jcvm/html/JCVM06cap.html )。 因此,您需要将每个CAP文件逐个发送到卡。
加载(Header.cap),加载(Directory.cap)......等
发送apdu,安装[安装]。 安装完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.