本发明专利技术提供了一种智能卡APDU命令修正方法和装置,方法包括如下步骤:(1)在补丁存储区的相应位置写入补丁指令;(2)在数据存储区设置与各个补丁指令对应的补丁状态信息;(3)在智能卡上电且APDU命令开始执行后,判断所述APDU命令是否是补丁指令,如果是,则执行相应的补丁指令;装置包括指令写入单元,用于在补丁存储区的相应位置写入补丁指令;补丁状态信息设置单元,用于在数据存储区设置与各个补丁指令对应的补丁状态信息;和COS命令执行单元,用于判断所述APDU命令是否需要打补丁,并在需要时执行相应的补丁指令。本发明专利技术提供的智能卡APDU命令修正方法和装置,提高了执行效率,并缩短了芯片对命令的处理时间。
【技术实现步骤摘要】
—种智能卡APDU命令修正方法和装置
本专利技术属于智能芯片领域,具体涉及一种智能卡应用协议数据单元命令(Application protocol data unit, AF1DU)修正方法和装置。
技术介绍
随着科技的不断进步,智能卡已经广泛应用到各个领域,如:银行、交通、社保、电力等多个行业。同时用户手里的智能卡数量也渐渐增多,如何使用户在不用再办新卡的情况下,重复利用手中已有的智能卡进行业务的升级,是比较关键的问题,这就不得不去研究智能卡的补丁机制。另外,对于智能卡商来说,在进行智能卡的COS硬掩膜后,回厂进行测试时,如果发现COS有BUG,如何及时的进行智能卡COS内部BUG的修正,使得这批产品不至于报废,也是十分重要的课题。种种应用表明,在智能卡的使用中,设计相应的补丁机制以便及时的更新应用、或修改COS的BUG是一件非常重要的工作。目前,很多COS开发商,都是在主程序中命令接受的地方,判断卡片是否有补丁,如果有补丁程序,则所有命令都在补丁区进行分发处理。这样的结果是,不管命令是否打过补丁,都需要到补丁区执行一遍,降低了程序的执行效率,也延长了芯片对命令的处理时间。
技术实现思路
为克服现有技术中效率低的缺陷,本专利技术提供了一种智能卡APDU命令修正方法和装置。为实现上述目的,本专利技术提供一种智能卡APDU命令修正方法,在智能卡的EEPROM中分别设置数据存储区和补丁存储区,其改进之处在于,所述方法包括如下步骤:(I).在所述补丁存储区的相应位置写入补丁指令;(2).在数据存储区设置与各个补丁指令对应的补丁状态信息;(3).在智能卡上电且APDU命令开始执行后,当判断到所述APDU命令是补丁指令时,执行对应的补丁指令。本专利技术提供的优选技术方案中,所述步骤I包括:将要更新或修正的命令二进制代码写入所述补丁存储区的相应位置;所述EEPROM中存储有对应原ROM的更新或修正的代码。本专利技术提供的第二优选技术方案中,在所述步骤I中,将补丁指令写入补丁存储区的相应位置,并记录每个补丁指令在补丁存储区的起始偏移位置。本专利技术提供的第三优选技术方案中,在所述步骤2中,补丁状态信息包括:补丁状态标志、补丁的总个数η、打补丁的命令和该命令在EEPROM中的存储地址;其中,补丁状态标志的初始值为无效;在补丁存储区的内容全部写好的情况下设置为有效。本专利技术提供的第四优选技术方案中,所述步骤3包括:判断所述APDU命令是否是补丁指令:检查所述补丁状态标志是否为有效,若有效则在补丁状态设置区域查找补丁指令,如果查找成功,则跳转到指定的补丁区执行该补丁指令;否则执行原ROM的代码;其中,所述补丁状态设置区域设置在所述数据存储区。本专利技术提供的第五优选技术方案中,所述步骤3包括如下具体步骤:(3-1).判断读取的补丁状态信息是否成功,在成功时读取补丁总个数n,进行步骤 3-2 ;(3-2).若补丁标志有效,且补丁的总个数不为0,则设置初始的路径号为0,否则执行原ROM的代码,并返回相应的执行状态字后结束执行命令;(3-3).判断路径号是否小于补丁总个数n,并在是时进行步骤3_4 ;(3-4).判断与该路径号对应的补丁指令与补丁表中的命令是否一致,若不一致,则将路径号加I并返回步骤3-3,否则进行步骤3-5 ;(3-5).根据补丁指令在补丁表中所对应的EEPROM的地址去执行相应的命令二进制代码;其中,补丁表设置在所述数据存储区,并用于存储补丁状态信息。本专利技术提供的第六优选技术方案中,提供一种智能卡APDU命令修正装置,其改进之处在于,所述装置包括:指令写入单元,用于在补丁存储区的相应位置写入补丁指令;补丁状态信息设置单元,用于在数据存储区设置与各个补丁指令对应的补丁状态信息;和命令执行单元,用于判断所述APDU命令是否是补丁指令,如果是,则执行对应的补丁指令。本专利技术提供的第七优选技术方案中,所述指令写入单元,还用于记录每个补丁指令在补丁存储区的起始偏移位置。本专利技术提供的第八优选技术方案中,命令执行单元包括:补丁状态信息读取判断模块,用于判断读取的补丁状态信息是否成功,如果成功则向所述路径号patch_num设置判断模块发送启动信息;路径号patch_num设置判断模块,用于启动命令执行模块;和命令执行模块,用于执行补丁指令。本专利技术提供的第九优选技术方案中,所述路径号patCh_num设置判断模块,包括:条件A判断组件和与其通信的条件B判断组件;所述条件A判断模块,接收到所述路径号patCh_num设置判断模块发送启动信息后,先判断补丁标志有效,且补丁的总个数不为O是否成立,若成立则设置初始的路径号patch_num为O并传递到所述条件B判断组件,否则执行原ROM的代码,并返回相应的执行状态字后结束执行命令;所述条件B判断组件,判断路径号patch_num是否小于补丁总个数η,如不小于则执行原ROM的代码,并返回相应的执行状态字后结束执行命令,否则对判断与该路径号patch_num对应的补丁指令INS与补丁表中的INS是否一致,不一致则将路径号patch_num加I并将结果返回给所述条件A判断模块,否则将结果传递到所述命令执行模块。与现有技术比,本专利技术提供的一种智能卡APDU命令修正方法和装置,可以在主程序中命令接受完成后,在真正执行指令的地方,判断命令是否是补丁命令,如果是补丁命令,则从已经掩膜好的ROM程序中,跳转到EEPROM中新设计的指令进行执行,从而完成相应的新需求功能。如果不是补丁命令,则继续执行原来APDU命令的内容;这样提高了执行效率,并缩短了芯片对命令的处理时间。本专利技术可以根据补丁程序的大小,灵活的设置EEPROM数据存储区与补丁存储区的大小,避免了 EEPROM空间的浪费;可以方便的进行应用的扩展,增加新的应用指令到ROM卡中;可以针对COS中已有指令,进行BUG的修正、或应用的更新;还可以通过补丁标志,灵活的确定是否需要启动补丁程序;再者在补丁查找成功时,则跳转到补丁区执行;查找不成功,则继续原来的流程,不影响使用。【附图说明】图1为智能卡APDU命令修正方法的实施例概括流程图。图2为执行写入的补丁指令步骤的具体流程图。图3为智能卡APDU命令修正装置的实施例结构图。图4为COS命令执行单元的实施例结构图。图5为 路径号设置判断模块的实施例结构图。【具体实施方式】提出一种针对ROM 智能卡 APDU (App Ii cat ion protocol data unit,应用协议数据单元)命令进行修正的方法。该方法可以在主程序中命令接受完成后,在真正执行指令的地方,判断命令是否是补丁命令,如果是补丁命令,则从已经掩膜好的ROM程序中,跳转到EEPROM中新设计的指令进行执行,从而完成相应的新需求。如果不是补丁命令,则继续执行原来APDU命令的内容,原来APDU命令是原ROM的代码。本专利技术解决了已经掩膜的ROM卡,再进行功能修正的解决方案。本专利技术提出了针对智能卡APDU命令进行更新、或修正的补丁方法,使得智能卡可以方便的进行应用的更新及BUG的修正。其主要设计方案如下:1.首先,在ROM卡的EEPROM区划分好数据存储区与补丁存储区的分界范围。2.其次,将事先准备好的需要更新或修正的命令二进制代码写本文档来自技高网...
【技术保护点】
一种智能卡APDU命令修正方法,在智能卡中设置数据存储区和补丁存储区,其特征在于,所述方法包括如下步骤:(1).在所述补丁存储区的相应位置写入补丁指令;(2).在数据存储区设置与各个补丁指令对应的补丁状态信息;(3).在智能卡上电且APDU命令开始执行后,当判断到所述APDU命令是补丁指令时,执行对应的补丁指令。
【技术特征摘要】
1.一种智能卡APDU命令修正方法,在智能卡中设置数据存储区和补丁存储区,其特征在于,所述方法包括如下步骤: (1).在所述补丁存储区的相应位置写入补丁指令; (2).在数据存储区设置与各个补丁指令对应的补丁状态信息; (3).在智能卡上电且APDU命令开始执行后,当判断到所述APDU命令是补丁指令时,执行对应的补丁指令。2.根据权利要求1所述的方法,其特征在于,所述步骤I包括:将要更新或修正的命令二进制代码写入所述补丁存储区的相应位置;所述EEPROM中存储有对应原ROM的更新或修正的代码。3.根据权利要求1或者2所述的方法,其特征在于,在所述步骤I中,将补丁指令写入补丁存储区的相应位置,并记录每个补丁指令在补丁存储区的起始偏移位置。4.根据权利要求1所述的方法,其特征在于,在所述步骤2中,补丁状态信息包括:补丁状态标志、补丁的总个数η、打补丁的命令和该命令在EEPROM中的存储地址;其中,补丁状态标志的初始值为无效;在补丁存储区的内容全部写好的情况下设置为有效。5.根据权利要求1或者4所述的方法,其特征在于,所述步骤3包括: 判断所述APDU命令是否是补丁指令:检查所述补丁状态标志是否为有效,若有效则在补丁状态设置区域查找补丁指令,如果查找成功,则跳转到指定的补丁状态设置区执行该补丁指令;否则执行原ROM的代码;其中,所述补丁状态设置区域设置在所述数据存储区。6.根据权利要求1或者4所述的方法,其特征在于,所述步骤3包括如下具体步骤: (3-1).判断读取的补丁状态信息是否成功,在成功时读取补丁总个数η,进行步骤3-2 ; (3-2).若补丁标志有效,且补丁的总个数不为0,则设置初始的路径号为0,否则执行原ROM的代码,并返回相应的执行状态字后结束执行命令; (3-3).判断路径号是否小于补丁总个数η,并在是时进行步骤3-4 ; (3-4).判断与该路径号对应的补丁指令与补丁表中的命令是否一致,若不一致...
【专利技术属性】
技术研发人员:付青琴,袁艳芳,王丽萍,李福雷,徐平江,张虹,
申请(专利权)人:北京南瑞智芯微电子科技有限公司,国家电网公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。