一种对java卡进行初始化的方法和java卡的制作方法

文档序号:6439501阅读:310来源:国知局
专利名称:一种对java卡进行初始化的方法和java卡的制作方法
技术领域
本发明涉及智能卡领域,特别涉及一种对java卡进行初始化的方法和java卡。
背景技术
现有技术中,对掩膜后首次运行的java卡,java虚拟机需要大量时间进行初始化,初始化时间已经远超IS07816-3所规定的ATR发送时间,导致必须使用专用读卡器才能完成java卡的首次运行。这将严重影响java卡的生产效率,尤其是发卡量数量级以万为单位的情况下,问题更显突出。

发明内容
本发明提供了一种对java卡进行初始化的方法和java卡,以解决上述现有技术中存在的问题。本发明提供了一种对java卡进行初始化的方法,包括以下步骤①、java卡上电;②、所述java卡接收命令,对接收到的命令进行判断,如果所述接收到的命令为激活命令,则执行步骤③;如果所述接收到的命令为切换命令,则执行步骤④;如果所述接收到的命令为第一应用协议数据单元APDU命令,则执行步骤⑤;③、所述java卡判断自身的激活成功标志位是否已被置位,如果所述激活成功标志位未被置位,所述java卡在被激活成功后,对所述java卡的激活成功标志位进行置位, 将所述生命周期标志位的取值修改为第一预设值,并返回步骤②;否则,所述java卡返回错误码,并返回步骤②;④、所述java卡判断所述生命周期标志位的取值是否为所述第一预设值,如果为所述生命周期标志位的取值为所述第一预设值,所述java卡将所述生命周期标志位的取值修改为所述第二预设值,并返回步骤②;否则,所述java卡返回错误码,并返回步骤②;⑤、所述java卡判断所述生命周期标志位的取值是否为所述第二预设值,如果为所述生命周期标志位的取值不是所述第二预设值,所述java卡返回错误码,并返回步骤 ②;否则,所述java卡从所述第一 APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,并返回步骤②,所述运行环境数据为运行java卡虚拟机所必需的数据。本发明还提供了一种对java卡进行初始化的方法,包括以下步骤①、java卡上电;②、所述java卡检查自身的生命周期标志位的取值以及激活成功标志位是否被置位,如果所述激活成功标志位未被置位,则执行步骤③;如果所述生命周期标志位的取值为第一预设值,则执行步骤⑥;如果所述生命周期标志位的取值为第二预设值,则执行步骤 ③、所述java卡对接收到的命令进行判断,如果所述接收到的命令为激活命令,则执行步骤④;否则,执行步骤⑤;④、所述java卡在被激活成功后,对所述java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值,并返回步骤③;⑤、所述java卡返回错误码,并返回步骤③;⑥、所述java卡对接收到的命令进行判断,如果所述接收到的命令为切换命令, 则执行步骤⑦;⑦、所述java卡将所述生命周期标志位的取值修改为第二预设值,并返回步骤⑧、所述java卡对接收到的命令进行判断,如果所述接收到的命令为第一应用协议数据单元APDU命令,则执行步骤⑨;⑨、所述java卡从所述第一 APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,并返回步骤⑧,所述运行环境数据为运行java卡虚拟机所必需的数据。本发明还提供了一种java卡,包括接收模块,用于接收命令;第一判断模块,用于对所述接收模块接收到的命令进行判断;第二判断模块,用于在所述第一判断模块判断所述接收到的命令为激活命令时, 判断所述java卡的激活成功标志位是否已被置位;在所述第一判断模块判断所述接收到的命令为切换命令时,判断所述生命周期标志位的取值是否为所述第一预设值;在所述第一判断模块判断接收到的命令为第一 APDU命令时,判断所述生命周期标志位的取值是否为所述第二预设值;第一设置模块,用于在所述第二判断模块判断所述激活成功标志位未被置位时, 在所述java卡在被激活成功后,对所述java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值;第二设置模块,用于在所述第二判断模块判断所述生命周期标志位的取值为所述第一预设值时,将所述生命周期标志位的取值修改为所述第二预设值;处理模块,用于在所述第二判断模块判断所述生命周期标志位的取值为所述第二预设值时,从所述第一 APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,所述运行环境数据为运行java卡虚拟机所必需的数据;发送模块,用于在所述第二判断模块判断所述激活成功标志位已被置位时,返回错误码;在所述第二判断模块判断所述生命周期标志位的取值不是所述第一预设值时,返回错误码;在所述第二判断模块判断所述生命周期标志位的取值不是所述第二预设值时, 返回错误码。本发明还提供了一种java卡,包括检查模块,用于检查所述java卡的生命周期标志位的取值以及激活成功标志位是否被置位;接收模块,用于接收命令;第一判断模块,用于对所述接收模块接收到的命令进行判断;第一设置模块,用于在所述检查模块检查到所述激活成功标志位未被置位,且所述第一判断模块判断接收到的命令为激活命令时,在所述java卡被激活成功后,对所述 Java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值;第二设置模块,用于在所述检查模块检查到所述生命周期标志位的取值为第一预设值,且所述第一判断模块判断所述接收到的命令为切换命令时,将所述生命周期标志位的取值修改为第二预设值;处理模块,用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第一应用协议数据单元APDU命令时,从所述第一 APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,所述运行环境数据为运行java卡虚拟机所必需的数据;发送模块,用于在所述检查模块检查到所述激活成功标志位未被置位,且所述第一判断模块判断接收到的命令不为激活命令时,返回错误码。本发明通过APDU命令将运行环境数据写入到java卡的NVM中,进而实现对java 卡的初始化,能够减少java卡的初始化时间,提高java卡的生产效率。


图1为本发明实施例一提供的一种对java卡进行初始化的方法流程图;图2为开发软件向卡片发送脚本文件的过程的流程图;图3为本发明实施例二提供的另一种对java卡进行初始化的方法流程图;图4为本发明实施例三提供的一种java卡的结构图;图5为本发明实施例四提供的另一种java卡的结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。卡片生命周期的定义1)非激活状态(Non-Active)掩膜出厂的卡片所处的状态,即整个COS首次运行所处的状态,此时卡片只处理激活命令,如在预设的激活次数内未激活成功,卡片将作废;2)激活状态(Active)卡片处于非激活状态时,接收到正确的激活命令,经过一系列的认证后,不再处理重复接收到的激活命令,同时可以处理其它命令。此状态又可以分为a)超级管理员状态(Administrator)卡片处于此状态时,可以处理除激活命令外的其它命令,包括卡片参数设定、下载器选择、切换至虚拟机状态等。b)下载器状态(Loader)卡片处于超级管理员状态时,接收到下载器切换命令后,将处于此状态。卡片处于下载器状态时,只处理与下载相关的命令序列,即NVM镜像下载命令序列及切换回超级管理员状态命令。c)JaVa虚拟机状态(JCVM)卡片处于超级管理员状态时,接收到虚拟机切换命令,将处于此状态。当卡片处于JCVM状态时,卡片将作为java卡虚拟机正常运行。实施例
本发明实施例一提供了一种对java卡进行初始化的方法。该方法中,利用开发软件从仿真卡片中获取镜像,对镜像进行处理后再应用到未初始化的java卡中。在本实施例中,在利用开发软件对未初始化的java卡进行初始化之前,首先进行以下操作将掩膜时写入java卡的ROM中的二进制文件下载至仿真器的ROM中,仿真器运行所述二级制文件,得到运行环境数据,所述运行环境数据存储在所述仿真器的NVM中。所述仿真器则为仿真卡片,仿真卡片首次上电后处于未激活状态。从所述仿真卡片中获取镜像的过程如下步骤A 仿真卡片插接到读卡器中,首次上电;步骤B 开发软件激活仿真卡片;在本实施例中,仿真卡片激活后处于超级管理员状态;步骤C 开发软件发送命令使激活后的仿真卡片进入虚拟机状态,并复位仿真卡片;在本实施例中,开发软件通过读卡器向仿真卡片发送切换状态命令;步骤D 暂停仿真卡片的运行,并使用仿真卡片工具将仿真卡片的NVM中存储的内容转存至一文件中;所述NVM中存储的内容即为所述运行环境数据;步骤E 对所述文件加密计算,得到最终获取的镜像文件。对所述获取的镜像文件进行处理的过程如下
步骤a 解密所述镜像文件;步骤b 获取所述解密镜像文件得到的明文中的有效数据;在本实施例中,仿真卡片处于虚拟机状态,仿真卡片的NVM中除了所述运行环境数据之外,其他信息均为无效数据,所以只从解密镜像文件得到的明文数据中提取运行环境数据;步骤c 对所述有效数据加密计算,得到加密的APDU(application protocol data unit,应用协议数据单元)数据域;在本实施例中,使用预先设置的数据转换密钥(Data Converter Key,以下简称 DCK)对所述有效数据加密计算;优选地,所述DCK密钥为采用DES算法的16字节密钥;步骤d 生成完整的APDU命令,并将所述生成的APDU命令以脚本的形式存放于脚本文件中;APDU命令的格式如表1所示表IAPDU命令格式表
权利要求
1.一种对java卡进行初始化的方法,其特征在于,包括以下步骤①、java卡上电;②、所述java卡等待接收命令;③、所述java卡接收命令,对接收到的命令进行判断,如果所述接收到的命令为激活命令,则执行步骤④;如果所述接收到的命令为切换命令,则执行步骤⑤;如果所述接收到的命令为第一应用协议数据单元APDU命令,则执行步骤⑥;④、所述java卡判断自身的激活成功标志位是否已被置位,如果所述激活成功标志位未被置位,所述java卡在被激活成功后,对所述java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值,并返回步骤②;否则,所述java卡返回错误码,并返回步骤②;⑤、所述java卡判断所述生命周期标志位的取值是否为所述第一预设值,如果所述生命周期标志位的取值为所述第一预设值,所述java卡将所述生命周期标志位的取值修改为所述第二预设值,并返回步骤②;否则,所述java卡返回错误码,并返回步骤②;⑥、所述java卡判断所述生命周期标志位的取值是否为所述第二预设值,如果为所述生命周期标志位的取值不是所述第二预设值,所述java卡返回错误码,并返回步骤②;否则,所述java卡从所述第一APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,并返回步骤②,所述运行环境数据为运行java卡虚拟机所必需的数据。
2.如权利要求1所述的方法,其特征在于,所述java卡对所述接收到的命令进行判断之后,还包括当所述接收到的命令为个人识别码PIN码验证命令时,所述java卡判断所述生命周期标志位的取值是否为所述第一预设值;如果所述生命周期标志位的取值不是所述第一预设值,所述java卡返回错误码,并返回步骤②;如果所述生命周期标志位的取值为所述第一预设值,所述java卡在对所述PIN码验证命令所包含的PIN码验证成功后,对所述java卡的验证通过标志位进行置位,并返回步骤 ②,所述验证通过标识位用于标识所述java卡对PIN码是否验证成功;所述java卡判断所述接收到的命令为切换命令之后,还包括所述java卡判断自身的验证通过标志位是否已被置位;所述java卡将所述生命周期标志位的取值修改为第二预设值,具体为当所述验证通过标志位已被置位时,所述java卡将所述生命周期标志位的取值修改为第二预设值。
3.如权利要求1所述的方法,其特征在于,所述java卡判断所述生命周期标志位的取值为所述第二预设值之后,还包括所述java卡判断自身是否存储有初始向量,如果存储有初始向量,则使用所述初始向量和第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述初始向量更新为所述第一 APDU命令中的MAC码;如果没有存储初始向量,则使用预设向量和所述第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述第一 APDU命令中的消息认证码MAC码作为初始向量进行存储;所述java卡从所述第一 APDU命令中获取运行环境数据,具体为 当完整性验证成功时,所述java卡使用第二密钥对所述第一 APDU命令中的APDU数据域进行解密,得到所述运行环境数据。
4.如权利要求1所述的方法,其特征在于,所述java卡对所述接收到的命令进行判断之后,还包括当所述接收到的命令为第二 APDU命令时,所述java卡从所述第二 APDU命令中获取地址信息;所述java卡将所述运行环境数据写入到自身的NVM中,具体为 所述java卡根据所述地址信息,将所述运行环境数据写入到自身的NVM中。
5.如权利要求4所述的方法,其特征在于,所述地址信息为基地址; 所述java卡从所述第二 APDU命令中获取地址信息,具体为 所述java卡从所述第二 APDU命令的命令头中获取所述基地址; 所述java卡将所述运行环境数据写入到自身的NVM中,具体为 所述java卡从所述第一 APDU命令中获取偏移地址;所述java卡根据所述基地址和所述偏移地址,将所述运行环境数据写入到自身的NVM中。
6.一种对java卡进行初始化的方法,其特征在于,包括以下步骤①、java卡上电;②、所述java卡检查自身的生命周期标志位的取值以及激活成功标志位是否被置位, 如果所述激活成功标志位未被置位,则执行步骤③;如果所述生命周期标志位的取值为第一预设值,则执行步骤⑥;如果所述生命周期标志位的取值为第二预设值,则执行步骤⑧;③、所述java卡对接收到的命令进行判断,如果所述接收到的命令为激活命令,则执行步骤④;否则,执行步骤⑤;④、所述java卡在被激活成功后,对所述java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值,并返回步骤③;⑤、所述java卡返回错误码,并返回步骤③;⑥、所述java卡对接收到的命令进行判断,如果所述接收到的命令为切换命令,则执行步骤⑦;⑦、所述java卡将所述生命周期标志位的取值修改为第二预设值,并返回步骤⑥;⑧、所述java卡对接收到的命令进行判断,如果所述接收到的命令为第一应用协议数据单元APDU命令,则执行步骤⑨;⑨、所述java卡从所述第一APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,并返回步骤⑧,所述运行环境数据为运行java卡虚拟机所必需的数据。
7.如权利要求6所述的方法,其特征在于,所述步骤⑥,还包括如果所述接收到的命令为个人识别码PIN码验证命令,所述java卡在对所述PIN码验证命令所包含的PIN码验证成功后,对所述java卡的验证通过标志位进行置位,所述验证通过标识位用于标识所述java卡对PIN码是否验证成功;所述java卡判断所述接收到的命令为切换命令之后,还包括所述java卡判断自身的验证通过标志位是否已被置位;所述java卡将所述生命周期标志位的取值修改为第二预设值,具体为当所述验证通过标志位已被置位时,所述java卡将所述生命周期标志位的取值修改为第二预设值。
8.如权利要求6所述的方法,其特征在于,所述java卡判断所述接收的命令为第一 APDU命令之后,还包括所述java卡判断自身是否存储有初始向量,如果存储有初始向量,则使用所述初始向量和第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述初始向量更新为所述第一 APDU命令中的MAC码;如果没有存储初始向量,则使用预设向量和所述第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述第一 APDU命令中的消息认证码MAC码作为初始向量进行存储;所述java卡从所述第一 APDU命令中获取运行环境数据,具体为 当完整性验证成功时,所述java卡使用第二密钥对所述第一 APDU命令中的APDU数据域进行解密,得到所述运行环境数据。
9.如权利要求6所述的方法,其特征在于,所述步骤⑧,还包括当所述接收到的命令为第二 APDU命令时,所述java卡从所述第二 APDU命令中获取地址信息;所述java卡将所述运行环境数据写入到自身的NVM中,具体为 所述java卡根据所述地址信息,将所述运行环境数据写入到自身的NVM中。
10.如权利要求9所述的方法,其特征在于,所述地址信息为基地址; 所述java卡从所述第二 APDU命令中获取地址信息,具体为所述java卡从所述第二 APDU命令的命令头中获取所述基地址; 所述java卡将所述运行环境数据写入到自身的NVM中,具体为 所述java卡从所述第一 APDU命令中获取偏移地址;所述java卡根据所述基地址和所述偏移地址,将所述运行环境数据写入到自身的NVM中。
11.一种java卡,其特征在于,包括 接收模块,用于接收命令;第一判断模块,用于对所述接收模块接收到的命令进行判断; 第二判断模块,用于在所述第一判断模块判断所述接收到的命令为激活命令时,判断所述java卡的激活成功标志位是否已被置位;在所述第一判断模块判断所述接收到的命令为切换命令时,判断所述生命周期标志位的取值是否为所述第一预设值;在所述第一判断模块判断接收到的命令为第一 APDU命令时,判断所述生命周期标志位的取值是否为所述第二预设值;第一设置模块,用于在所述第二判断模块判断所述激活成功标志位未被置位时,在所述java卡在被激活成功后,对所述java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值;第二设置模块,用于在所述第二判断模块判断所述生命周期标志位的取值为所述第一预设值时,将所述生命周期标志位的取值修改为所述第二预设值;处理模块,用于在所述第二判断模块判断所述生命周期标志位的取值为所述第二预设值时,从所述第一 APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中,所述运行环境数据为运行java卡虚拟机所必需的数据;发送模块,用于在所述第二判断模块判断所述激活成功标志位已被置位时,返回错误码;在所述第二判断模块判断所述生命周期标志位的取值不是所述第一预设值时,返回错误码;在所述第二判断模块判断所述生命周期标志位的取值不是所述第二预设值时,返回错误码。
12.如权利要求11所述的java卡,其特征在于,还包括第三设置模块和第三判断模块;所述第二判断模块,还用于在所述第一判断模块判断所述接收到的命令为个人识别码 PIN码验证命令时,判断所述生命周期标志位的取值是否为所述第一预设值;所述第三设置模块,用于在所述第二判断模块判断所述生命周期标志位的取值为所述第一预设值时,在对所述PIN码验证命令所包含的PIN码验证成功后,对所述java卡的验证通过标志位进行置位,所述验证通过标识位用于标识所述java卡对PIN码是否验证成功;所述第三判断模块,用于判断所述java卡的验证通过标志位是否已被置位;所述第二设置模块,具体用于在所述第二判断模块判断所述生命周期标志位的取值为所述第一预设值,且所述第三判断模块判断所述验证通过标志位已被置位时,将所述生命周期标志位的取值修改为第二预设值。
13.如权利要求11所述的java卡,其特征在于,所述处理模块,具体用于在所述第二判断模块判断所述生命周期标志位的取值为所述第二预设值时,判断所述java卡是否存储有初始向量,如果存储有初始向量,则使用所述初始向量和第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述初始向量更新为所述第一 APDU命令中的MAC码,使用第二密钥对所述第一 APDU命令中的APDU数据域进行解密,得到所述运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中;如果没有存储初始向量,则使用预设向量和所述第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述第一 APDU命令中的消息认证码 MAC码作为初始向量进行存储,使用所述第二密钥对所述第一 APDU命令中的APDU数据域进行解密,得到所述运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM 中。
14.如权利要求11所述的java卡,其特征在于,还包括获取模块,用于在所述第一判断模块判断所述接收到的命令为第二 APDU命令时,从所述第二 APDU命令中获取地址信息;所述处理模块,具体用于在所述第二判断模块判断所述生命周期标志位的取值为所述第二预设值时,从所述第一 APDU命令中获取运行环境数据,根据所述地址信息,将所述运行环境数据写入到自身的NVM中。
15.如权利要求14所述的java卡,其特征在于,所述地址信息为基地址;所述获取模块,具体用于从所述第二 APDU命令的命令头中获取所述基地址;所述处理模块,具体用于在所述第二判断模块判断所述生命周期标志位的取值为所述第二预设值时,从所述第一 APDU命令中获取运行环境数据和偏移地址,根据所述基地址和所述偏移地址,将所述运行环境数据写入到自身的NVM中。
16.一种java卡,其特征在于,包括检查模块,用于检查所述java卡的生命周期标志位的取值以及激活成功标志位是否被置位;接收模块,用于接收命令;第一判断模块,用于对所述接收模块接收到的命令进行判断; 第一设置模块,用于在所述检查模块检查到所述激活成功标志位未被置位,且所述第一判断模块判断接收到的命令为激活命令时,在所述java卡被激活成功后,对所述java卡的激活成功标志位进行置位,将所述生命周期标志位的取值修改为第一预设值;第二设置模块,用于在所述检查模块检查到所述生命周期标志位的取值为第一预设值,且所述第一判断模块判断所述接收到的命令为切换命令时,将所述生命周期标志位的取值修改为第二预设值;处理模块,用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第一应用协议数据单元APDU命令时,从所述第一 APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器 NVM中,所述运行环境数据为运行java卡虚拟机所必需的数据;发送模块,用于在所述检查模块检查到所述激活成功标志位未被置位,且所述第一判断模块判断接收到的命令不为激活命令时,返回错误码。
17.如权利要求16所述的java卡,其特征在于,还包括第三设置模块,用于在所述检查模块检查到所述生命周期标志位的取值为第一预设值,且所述第一判断模块判断所述接收到的命令为个人识别码PIN码验证命令,在对所述 PIN码验证命令所包含的PIN码验证成功后,对所述java卡的验证通过标志位进行置位,所述验证通过标识位用于标识所述java卡对PIN码是否验证成功;第二判断模块,用于判断所述java卡的验证通过标志位是否已被置位; 所述第二设置模块,具体用于在所述检查模块检查到所述生命周期标志位的取值为第一预设值,且所述第一判断模块判断所述接收到的命令为切换命令,以及所述第二判断模块判断所述验证通过标志位已被置位时,将所述生命周期标志位的取值修改为第二预设值。
18.如权利要求16所述的java卡,其特征在于,所述处理模块,具体用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第一应用协议数据单元APDU命令时, 判断所述java卡是否存储有初始向量,如果存储有初始向量,则使用所述初始向量和第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述初始向量更新为所述第一 APDU命令中的MAC码,使用第二密钥对所述第一 APDU命令中的APDU数据域进行解密,得到所述运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM 中;如果没有存储初始向量,则使用预设向量和所述第一密钥对所述第一 APDU命令进行完整性验证,并在完整性验证成功时,将所述第一 APDU命令中的消息认证码MAC码作为初始向量进行存储,使用所述第二密钥对所述第一 APDU命令中的APDU数据域进行解密,得到所述运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中。
19.如权利要求16所述的java卡,其特征在于,还包括获取模块,用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第二 APDU命令时,从所述第二 APDU命令中获取地址信息;所述处理模块,具体用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第一 APDU命令时,从所述第一 APDU命令中获取运行环境数据,根据所述地址信息,将所述运行环境数据写入到自身的NVM中。
20.如权利要求19所述的java卡,其特征在于,所述地址信息为基地址;所述获取模块,具体用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第二 APDU命令时,从所述第二 APDU命令的命令头中获取所述基地址;所述处理模块,具体用于在所述检查模块检查到所述生命周期标志位的取值为第二预设值,且所述第一判断模块判断所述接收到的命令为第一 APDU命令时,从所述第一 APDU命令中获取运行环境数据和偏移地址,根据所述基地址和所述偏移地址,将所述运行环境数据写入到自身的NVM中。
全文摘要
本发明公开一种对java卡进行初始化的方法和java卡,该方法包括以下步骤java卡上电,接收命令,对接收到的命令进行判断,针对不同的命令执行不同的操作,如果所述接收到的命令为第一APDU命令,则判断所述生命周期标志位的取值是否为所述预设值,如果为所述生命周期标志位的取值不是所述预设值,所述java卡返回错误码;否则,所述java卡从所述第一APDU命令中获取运行环境数据,将所述运行环境数据写入到自身的非易失性存储器NVM中。本发明通过APDU命令将运行环境数据写入到java卡的NVM中,能够减少java卡的初始化时间,提高java卡的生产效率。
文档编号G06K7/00GK102521094SQ20111038567
公开日2012年6月27日 申请日期2011年11月28日 优先权日2011年11月28日
发明者于华章, 陆舟 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1