一种在CAP文件中替换函数的方法、装置及系统制造方法及图纸

技术编号:4104662 阅读:338 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种在CAP文件中替换函数的方法、装置及系统,以对JavaCard设备CAP文件的函数进行替换。该方法为:接收第一APDU命令,在本地CAP文件中确定需更改的第一函数,以及该函数归属的类,并确定该类中定义的用于放置新函数的存储位置,根据第一APDU命令生成用于替换第一函数的第二函数,将第二函数存入所述存储位置,并接收第二APDU命令,根据该命令从所述存储位置读取第二函数,对CAP文件中的第一函数进行替换。这样,将第二函数保存为方法数组,再替换第一函数,不需预留存储空间即可替换CAP文件中的函数,提高了效率,节约了成本。本发明专利技术同时公开了一种在CAP文件中替换函数的装置及系统。

【技术实现步骤摘要】

本专利技术涉及智能卡领域,尤其涉及Java Card应用中一种在CAP文件中替换函数 的方法、装置及系统。
技术介绍
智能卡的存储器体系主要是由读写存储器(RAM)、只读存储器(ROM)以及可擦写 编程存储器(EEPR0M)组成,智能卡所有的程序内容都保存在非易失性的存储器中。Java Card是可以运行Java程序代码的智能卡。考虑智能卡的存储空间有限,不能直接存储Java源代码或class类文件,在将 Java Card类导入一个Java Card设备之前,需要通过转换装置将类文件转换为标准的转化 小应用程序(Converted Applet, CAP)文件,该CAP文件包含了 Java程序包中的所有类文 件。在Java编程语言中,方法是实现功能的最小单位,为了叙述方便,这里统一将方法称为 函数。对于Java源代码中的每个函数,转换为CAP文件后,都是由方法头和多个操作码组 成,其中,每个操作码用一个字节表示,能够实现特定的功能。现有技术中,在将CAP文件导入Java Card设备后,对于存储在ROM中的CAP文 件,如果CAP文件中的某个Java函数出现错误,或者是需要修改某个函数以实现新的功能 时,不能直接改写CAP文件的操作码,可能需要更换新的Java Card设备。同样,对于存储 在EEPR0M中的CAP文件,理论上可以改写操作码,但是实际应用中,由于CAP文件在下载到 Java Card设备上时,每个函数占用的存储空间已经确定,可能使得存放新函数操作码的存 储空间不足,再者,在下载CAP文件时,可能已经经过链接并包含用户数据,CAP文件内容各 组件之间的关系已经确定,如果直接改写该CAP文件中的函数,可能会引起错误。综上所述,需要寻求一种替换已下载到Java Card设备上的函数的方法,以克服不 能改写Java Card设备存储的CAP文件中的函数,或者改写时容易出现错误的缺陷。
技术实现思路
本专利技术提供一种在CAP文件中替换函数的方法、装置及系统,用以在不影响CAP文 件其它功能以及用户数据的情况下,对存储在Java Card设备上的CAP文件中的函数进行替换。本专利技术实施例提供的具体技术方案如下一种在CAP文件中替换函数的方法,包括接收卡片接受设备发送的第一应用程序协议数据单元(APDU)命令;在本地预存的CAP文件中确定需更改的第一函数,并确定该第一函数归属的类;确定所述类中定义的用于放置新生成函数的存储位置,并根据所述第一 APDU命 令生成相应的用于替换第一函数的第二函数,以及将第二函数存入所述存储位置;接收卡片接受设备发送的第二 APDU命令,根据该第二 APDU命令,从所述存储位置 读取第二函数,对所述CAP文件中的第一函数进行替换。一种在CAP文件中替换函数的装置,包括第一处理单元,用于接收卡片接受设备发送的第一应用程序协议数据单元(APDU) 命令;第二处理单元,用于在本地预存的CAP文件中确定需更改的第一函数,并确定该 第一函数归属的类;第三处理单元,用于确定所述类中定义的用于放置新生成函数的存储位置,并根 据所述第一 APDU命令生成相应的用于替换第一函数的第二函数,以及将第二函数存入所 述存储位置;第四处理单元,用于接收卡片接受设备发送的第二 APDU命令,根据该第二 APDU命 令,从所述存储位置读取第二函数,对所述CAP文件中的第一函数进行替换。一种在CAP文件中替换函数的系统,包括卡片接受设备,用于向Java Card设备发送第一 APDU命令以及第二 APDU命令;Java Card设备,用于接收卡片接受设备发送的第一应用程序协议数据单元 (APDU)命令,在本地预存的CAP文件中确定需更改的第一函数,确定该第一函数归属的类, 以及确定所述类中定义的用于放置新生成函数的存储位置,根据所述第一 APDU命令生成 相应的用于替换第一函数的第二函数,以及将第二函数存入所述存储位置,并接收卡片接 受设备发送的第二 APDU命令,根据该第二 APDU命令,从所述存储位置读取第二函数,对所 述CAP文件中的第一函数进行替换。基于上述技术方案,本专利技术实施例中,通过在源程序中添加方法数组生成函数,将 新函数(第二函数)对应的数据文件保存到方法数组中,再采用该方法数组替换CAP文件 中存在的第一函数,对第二函数的保存是通过创建方法数组来实现的,不需要预留存储空 间,只需在源程序中对预期会改变的函数添加方法数组生成函数,即可根据APDU命令替换 CAP文件中的函数,达到修正错误或实现新功能的目的,同时,对CAP文件中的其他功能和 数据不会造成影响,可以方便快捷地对CAP文件中的函数进行替换,提高了效率,节约了成 本。附图说明图1为本专利技术实施例中在CAP文件中替换函数的系统架构图;图2为本专利技术实施例中在CAP文件中替换函数的装置结构图;图3为本专利技术实施例中在CAP文件中替换函数的详细流程图。具体实施例方式为了克服Java Card存储方式导致的无法修改CAP文件中的函数这一技术缺陷, 本专利技术实施例提供了一种在CAP文件中替换函数的方法,能够在不影响Java Card已有的 功能和数据的情况下,对Java Card上存储的CAP文件中的函数进行替换,提高效率,节约 成本。该方法为接收卡片接受设备发送的第一应用程序协议数据单元(APDU)命令,在本 地预存的CAP文件中确定需更改的第一函数,并确定该第一函数归属的类,确定上述类中 定义的用于放置新生成函数的存储位置,并根据上述第一 APDU命令生成相应的用于替换 第一函数的第二函数,以及将第二函数存入上述存储位置,并接收卡片接受设备发送的第5二 APDU命令,根据该第二 APDU命令,从上述存储位置读取第二函数,对上述CAP文件中的第一函数进行替换。下面结合附图对本专利技术优选的实施方式进行详细说明。参阅附图1所示,本专利技术实施例中,在CAP文件中替换函数的系统主要包括卡片接 受设备10和Java Card设备11,其中,卡片接受设备10,用于向Java Card设备11发送第一 APDU命令以及第二 APDU命 令;Java Card设备11,用于接收卡片接受设备10发送的第一应用程序协议数据单元 (APDU)命令,在本地预存的CAP文件中确定需更改的第一函数,并确定该第一函数归属的 类,确定该类中定义的用于放置新生成函数的存储位置,并根据上述第一 APDU命令生成相 应的用于替换第一函数的第二函数,以及将第二函数存入上述存储位置,并接收卡片接受 设备发送的第二 APDU命令,根据该第二 APDU命令,从上述存储位置读取第二函数,对上述 CAP文件中的第一函数进行替换。参阅附图2所示,本专利技术实施例中,Java Card设备11主要包括以下处理单元第一处理单元111,用于接收卡片接受设备发送的第一应用程序协议数据单元 (APDU)命令;第二处理单元112,用于在本地预存的CAP文件中确定需更改的第一函数,并确定 该第一函数归属的类;第三处理单元113,用于确定所述类中定义的用于放置新生成函数的存储位置,并 根据所述第一 APDU命令生成相应的用于替换第一函数的第二函数,以及将第二函数存入 所述存储位置;第四处理单元114,用于接收卡本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:周伟楠
申请(专利权)人:北京握奇数据系统有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1