CN112925613A - 一种Java智能卡及其RAM复用方法 - Google Patents

一种Java智能卡及其RAM复用方法 Download PDF

Info

Publication number
CN112925613A
CN112925613A CN202110334580.8A CN202110334580A CN112925613A CN 112925613 A CN112925613 A CN 112925613A CN 202110334580 A CN202110334580 A CN 202110334580A CN 112925613 A CN112925613 A CN 112925613A
Authority
CN
China
Prior art keywords
java
ram area
space
multiplexing
ram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110334580.8A
Other languages
English (en)
Other versions
CN112925613B (zh
Inventor
钱京
董建桥
杨华威
曹炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hengbao Co Ltd
Original Assignee
Hengbao Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hengbao Co Ltd filed Critical Hengbao Co Ltd
Priority to CN202110334580.8A priority Critical patent/CN112925613B/zh
Publication of CN112925613A publication Critical patent/CN112925613A/zh
Application granted granted Critical
Publication of CN112925613B publication Critical patent/CN112925613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及智能卡技术领域,尤其涉及一种Java智能卡及其RAM复用方法,其中,Java智能卡的RAM复用方法,包括:待虚拟机解析Java层应用的操作所对应的字节码,并且待解析出需要进入Nat i ve层时,停止虚拟机;在Nat i ve层,将上述操作相关的数据存储在Java‑RAM区域中,以复用Java‑RAM区域进行相应的数据处理;重启虚拟机,虚拟机获得处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。本申请使得Java智能卡的资源在满足其安全性要求的情况下,也较大程度的满足其功能性要求。

Description

一种Java智能卡及其RAM复用方法
技术领域
本申请涉及智能卡技术领域,尤其涉及一种Java智能卡及其RAM复用方法。
背景技术
Java智能卡是通过运用Java Card技术以及嵌入卡中的集成电路芯片来存储数据信息的卡片。其中,Java Card技术主要是让智慧卡或与智慧卡相近的装置上,以具有安全防护性的方式来执行小型的Java Applet。整体而言,Java智能卡的主要特点在于移携性与安全性。
与传统磁条卡相比,Java智能卡由于存储容量是传统磁条卡的数百倍,可植入更多的应用程序,例如:社保、公交、零售、医院、自助售票及售货等,从而使得Java智能卡被广泛应用于各个领域,实现“一卡多用、一卡通行”,并且Java智能卡还具有安全保密性好、很强的抗攻击能力,很难被复制与伪造的特点。
但是,由于现在用户对于产品功能性以及产品安全性的期望越来越高,因此对于Java智能卡在产品的一卡多应用方面,以及安全性保护方面的功能需求也越来越迫切。然而,对于一个成熟的产品来说,往往产品的安全性和功能性一般都是对立的,当Java智能卡的资源倾斜到安全方面时,留给Java智能卡的功能方面的资源将会越来越少,这使得Java智能卡上本来就极小的空间面临着资源严重不足的问题。
因此,如何使得Java智能卡的资源在满足其安全性要求的情况下,也较大程度的满足其功能性要求,是目前本领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种Java智能卡及其RAM复用方法,以使得Java智能卡的资源在满足其安全性要求的情况下,也较大程度的满足其功能性要求。
为解决上述技术问题,本申请提供如下技术方案:
一种Java智能卡的RAM复用方法,包括如下步骤:待虚拟机解析Java层应用的操作所对应的字节码,并且待解析出需要进入Native层时,停止虚拟机;在Native层,将上述操作相关的数据拷贝至Java-RAM区域中,以复用Java-RAM区域进行相应的数据处理;重启虚拟机,虚拟机获得处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,Java层和Native层是Java智能卡的操作系统分为的两层组织架构。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,复用Java-RAM区域进行相应的数据处理之前,还包括如下子步骤:在Native层,查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;若Java-RAM区域的总空间不满足上述操作复用Java-RAM区域的要求,则返回无效的信息,停止申请复用Java-RAM区域。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,复用Java-RAM区域进行相应的数据处理之前,还包括如下子步骤:在Native层,查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;若Java-RAM区域的剩余空间大小满足上述操作复用Java-RAM区域的要求,则提供待复用Java-RAM区域空间的起始地址;将C-RAM区域和/或C-stack区域中的上述操作相关的数据从待复用Java-RAM区域空间的起始地址处开始存储,并对该数据进行处理。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,复用Java-RAM区域进行相应的数据处理之前,还包括如下子步骤:在Native层,Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;若Java-RAM区域的总空间大小满足上述操作复用Java-RAM区域的要求,而Java-RAM区域的剩余空间大小不满足上述操作复用Java-RAM区域的要求,则分配备份空间,并将Java-RAM区域的数据备份到备份空间,然后提供待复用Java-RAM区域空间的起始地址;将C-RAM区域和/或C-stack区域中的上述操作相关的数据从待复用Java-RAM区域空间的起始地址处开始存储,并对该数据进行处理。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,通过调用复用空间申请函数来查询Java-RAM区域的空间大小是否满足复用Java-RAM区域的要求;其中,复用空间申请函数具有申请的待复用空间的大小、待复用空间数据后续恢复的地址两个参数,以及待复用空间的起始地址一个返回值。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,还包括如下步骤:查询复用Java-RAM区域时是否分配了备份空间;若未分配备份空间,则重新启动虚拟机,从指定的位置获取处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,还包括如下步骤:查询复用Java-RAM区域时是否分配了备份空间;若分配了备份空间,则对复用的Java-RAM区域的数据进行恢复,并释放备份空间;待复用的Java-RAM区域的数据恢复后,重新启动虚拟机,从指定的位置获取处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
如上所述的Java智能卡的RAM复用方法,其中,优选的是,通过调用复用空间恢复函数查询复用的Java-RAM区域是否分配了备用空间;其中,复用空间恢复函数具有一个复用空间数据后续恢复的地址参数,并且无返回值。
一种Java智能卡,所述Java智能卡执行上述任一项所述的Java智能卡的RAM复用方法。
相对上述背景技术,本发明所提供的Java智能卡及其RAM复用方法,利用Native层代码执行期间Java层虚拟机停止的特性,从而可以完成Java和Native跨层复用RAM的实现机制,将原本需要在C-RAM区域和/或C-stack进行处理的数据,通过复用机制在Java-RAM区域进行处理,从而可以减小原本分配的用来处理数据的C-RAM区域和/或C-stack区域,进而大大的节省卡片的RAM资源,在卡片既保证操作系统安全性的前提下,同时也能释放更多的RAM资源留给卡上应用,使其在性能和功能性方面也能得到极大的保证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的Java智能卡的RAM复用方法的流程图;
图2是本申请实施例提供的在复用空间中进行数据处理的流程图;
图3是本申请实施例提供的恢复复用空间的数据的流程图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
Java智能卡的空间资源包括:ROM区域、NVM区域、RAM区域。其中,ROM区域指的是代码只读区,用于存储操作系统的代码和应用的代码;NVM区域是非易失性数据存储区,用来存储卡片内部数据;RAM区域是卡片内部运行数据缓存区,用于存储卡片内部操作系统的所有全局变量、局部变量、堆栈等重要信息。
相较于ROM区域和NVM区域,RAM区域的资源更小更宝贵,是卡片资源受限的主要原因。由于Java智能卡的安全功能的增加,使得RAM区域中存储的操作系统中安全占用的全局变量、堆栈等资源越来越多,而RAM区域中留给Java智能卡上的应用所使用的资源将越来越少,这使得Java智能卡上的应用的性能以及功能均都受到了很大的限制。
基于此,本申请提出了一种Java智能卡的RAM复用方法,如图1所示,包括如下步骤:
步骤S110、待虚拟机解析Java层应用的操作所对应的字节码,并且待解析出需要进入Native层时,停止虚拟机;
Java智能卡的操作系统可以分为:Native(本地框架)层和Java层两层组织架构。其中,Native层主要是操作系统以及通信模块、算法模块等底层模块;Java层主要是应用层。
现有的Java智能卡的RAM区域包括:C-RAM区域、C-stack区域、Java-RAM区域、Java-stack区域。其中,C-RAM区域用来存储Native层的全局变量;而C-stack区域用来存储Native层的局部变量以及函数调用时的参数;Java-RAM区域用来存储Java层的应用数据;Java-stack区域用来存储Java层的应用上下文信息。
例如:应用层在Java层调用标准JAVAAPI算法接口进行计算时,虚拟机执行PUSH(推入信息)相关字节码,将Java层传递参数提前压栈在制定位置形成Java栈,以用于将Java层传递参数(以安全算法接口为例,此处的参数包含但不限于:计算源数据地址、控制参数“加密/解密”、计算结果输出地址)传递于Native层。
虚拟机执行完PUSH字节码后,执行invoke(方法调用)字节码,来调用并进入Native层的底层算法函数,以完成后续底层计算操作,此时虚拟机停止,等待Native层的底层算法函数处理完成后再继续启动。
步骤S120、在Native层,将与上述操作相关的数据拷贝至Java-RAM区域中,以复用Java-RAM区域进行相应的数据处理;
具体的,如图2所示,包括如下子步骤:
步骤S121、在Native层,查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;
具体的,待进入Native层的底层算法函数后,该函数解析在预定位置形成的Java栈,以获得之前通过执行PUSH字节码而从Java层传递至Native层的Java层传递参数(计算源数据地址、控制参数“加密/解密”、计算结果输出地址等)。然后,计算出该底层算法函数对结构体、参数、秘钥等数据处理在Java-RAM区域中所需要占用的空间大小。
Native层的底层算法函数需要依据获得的Java层传递参数(计算源数据地址)将原本存储在计算源数据地址的加密模式的密钥数据(与上述操作相关的数据)存储到Java-RAM区域中,依据获得的Java层传递参数(控制参数“加密/解密”)在Java-RAM区域中将加密模式的密钥数据转换为非加密模式的密钥数据。
因此,在Native层,调用复用空间申请函数(GetWordingRAM(size,backAddr)),以查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求,也就是查询Java-RAM区域的空间大小是否满足底层算法函数在Java-RAM区域中所需要占用的空间大小,从而获取复用空间地址。其中,复用空间申请函数(GetWordingRAM(size,backAddr))具有两个参数(size,backAddr)和一个函数返回值。其中,一个参数(size)为申请的待复用空间的大小,用于与Java-RAM区域的总空间大小以及Java-RAM区域的剩余空间大小进行对比,以查询Java-RAM区域的空间大小是否满足复用要求;另一个参数(backAddr)为待复用空间数据后续恢复的地址。
步骤S122、若Java-RAM区域的总空间大小不满足上述操作复用Java-RAM区域的要求,则返回无效的信息,停止申请复用Java-RAM区域;
具体的,若申请的待复用空间的大小(size)大于Java-RAM区域的总空间大小,则申请的待复用空间的大小(size)不合法,复用空间申请函数(GetWordingRAM(size,backAddr))的返回值为无效(NULL),对Java-RAM区域的复用请求终止。
步骤S123、若Java-RAM区域的剩余空间大小满足上述操作复用Java-RAM区域的要求,则提供待复用Java-RAM区域空间的起始地址;
若申请的待复用空间的大小(size)小于等于Java-RAM区域的剩余空间的大小,则当前Java-RAM的剩余空间足够被复用,无需其他操作,复用空间申请函数(GetWordingRAM(size,backAddr))的返回值为Java-RAM区域的剩余空间的起始地址,即Java-RAM区域的剩余空间的起始地址即为待复用空间的起始地址。
步骤S124、若Java-RAM区域的总空间大小满足上述操作复用Java-RAM区域的要求,而Java-RAM区域的剩余空间大小不满足上述操作复用Java-RAM区域的要求,则分配备份空间,并将Java-RAM区域中的数据备份到备份空间,然后提供待复用Java-RAM区域空间的起始地址;
具体的,若申请的待复用空间的大小(size)小于Java-RAM区域的总空间大小,且大于Java-RAM区域的剩余空间的大小,则申请的待复用空间的大小(size)合法,但是Java-RAM区域的剩余空间不够被复用。此时如果希望继续进行Java-RAM空间的复用,则申请备份空间(例如NVM区域)备份Java-RAM已经存储的内容数据,并将备份空间备份内容数据的地址记录在复用空间申请函数(GetWordingRAM(size,backAddr))的另一个参数(backAddr)中,以释放Java-RAM区域,从而使得Java-RAM区域足够被复用。
复用空间申请函数(GetWordingRAM(size,backAddr))的返回值为Java-RAM区域被释放后剩余空间的起始地址,即Java-RAM区域被释放后的剩余空间的起始地址即为待复用空间的起始地址。
步骤S125、将与上述操作相关的数据从待复用Java-RAM区域空间的起始地址处开始存储,并对该数据进行处理;
具体的,将所需的数据存储到Java-RAM区域中指定的待复用空间,Native层的底层算法函数依据获得的Java层传递参数在Java-RAM区域中进行结构体数据的初始化、计算源数据、密钥数据的去加密化、参数初始化等数据处理操作,之后再进行相关的运算的数据处理操作。
本申请中,利用了底层算法函数在Native层进行处理处理期间,虚拟机停止工作,所以就可以将原本在C-RAM区域或C-stack区域进行的“将加密模式的密钥数据转换为非加密模式的密钥数据”的数据处理转移至Java-RAM区域中,从而可以在虚拟机停止期间复用Java-RAM区域的空间,进而在RAM大小一定的情况下,可以尽量节省保证操作系统安全性能要求的C-RAM区域、C-stack区域,同时也能分配更多的RAM资源给保证功能性要求的Java-RAM区域,使其在性能和功能性方面也能得到极大的保证。
步骤S130、重启虚拟机,虚拟机获得处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码;
具体的,如图3所示,包括如下子步骤:
步骤S131、将在复用Java-RAM区域中处理完成后的数据存储在指定的位置;
具体的,待计算完成之后,Native层的底层算法函数依据Java层传递参数(计算结果输出地址)优先将在复用空间中计算出的结果信息拷贝至Java层传输参数(计算结果输出地址)所指定的位置,以保证虚拟机重启后,可以从指定的位置获得计算出的结果,避免在后续执行复用空间恢复函数(RestoreWordingRAM(backAddr))后,复用空间被覆盖,造成原有的计算结果的丢失。
步骤S132、查询复用Java-RAM区域时是否分配了备份空间,若未分配备份空间,则重新启动虚拟机,从指定的位置获取处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
调用复用空间恢复函数(RestoreWordingRAM(backAddr)),该函数用于恢复被复用前Java-RAM区域的数据,以确保不会因为Java-RAM空间被复用而造成上层应用的指令无法被正常执行。其中,复用空间恢复函数(RestoreWordingRAM(backAddr))具有一个参数(backAddr),为待复用Java-RAM区域数据后续恢复的地址,并且该函数无返回值。
具体的,调用复用空间恢复函数(RestoreWorkingRAM(backAddr)),若其参数(backAddr)等于0,则说明之前的复用空间申请函数(GetWordingRAM(size,backAddr))在申请复用空间时,Java-RAM区域中可被复用的空间充足,因此没有进行数据的备份(即没有分配备份空间),此时,虽然Java-RAM区域中剩余空间区域(也就是上述被复用的区域)中的数据会被修改,但是并不会影响后续对字节码的执行,所以复用空间恢复函数(RestoreWorkingRAM(backAddr))不做任何处理直接返回。
同时,算法API函数执行完成后函数返回,代码执行从Native层返回Java层,重启虚拟机继续下一个字节码,继续解析和执行后续Java字节码指令。
步骤S133、查询复用Java-RAM区域时是否分配了备份空间,若分配了备份空间,则对复用空间的数据进行恢复,并释放备份空间;
若复用空间恢复函数(RestoreWorkingRAM(backAddr))的参数(backAddr)不等于0,则说明之前的复用空间申请函数(GetWordingRAM(size,backAddr))在申请复用空间时,分配了备份空间,并将Java-RAM区域中的数据已经被备份至备份区域中,因此需要根据其参数(backAddr)的指示,将备份区域中保存的数据复制到Java-RAM区域中,以恢复Java-RAM区域中数据,并释放之前所申请的备份区域,从而保证后续字节码的正确执行。
步骤S134、待复用Java-RAM区域的数据恢复后,重新启动虚拟机,从指定的位置获取处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
具体的,待Native层底层算法函数执行完成之后,代码将从Native层返回Java层,虚拟机重新启动,从(Java层传递参数“计算结果输出地址”)指示的位置获得计算出的结果信息,并且获取下一个字节码,继续完成后续Java字节码指令的解析和执行工作。
本申请利用Native层代码执行期间Java层虚拟机停止的特性,从而可以完成Java和Native跨层复用RAM的实现机制,将原本需要在C-RAM区域和/或C-stack进行处理的数据,通过复用机制在Java-RAM区域进行处理,从而可以减小C-RAM区域和/或C-stack区域,进而大大的节省卡片的RAM资源,在卡片既保证操作系统安全性的前提下,同时也能释放更多的RAM资源留给卡上应用,使其在性能和功能性方面也能得到极大的保证。
本申请还提供了一种Java智能卡,该Java智能卡执行上述任一项Java智能卡的RAM复用方法。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (10)

1.一种Java智能卡的RAM复用方法,其特征在于,包括如下步骤:
待虚拟机解析Java层应用的操作所对应的字节码,并且待解析出需要进入Native层时,停止虚拟机;
在Native层,将上述操作相关的数据拷贝至Java-RAM区域中,以复用Java-RAM区域进行相应的数据处理;
重启虚拟机,虚拟机获得处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
2.根据权利要求1所述的Java智能卡的RAM复用方法,其特征在于,Java层和Native层是Java智能卡的操作系统分为的两层组织架构。
3.根据权利要求1所述的Java智能卡的RAM复用方法,其特征在于,复用Java-RAM区域进行相应的数据处理之前,还包括如下子步骤:
在Native层,查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;
若Java-RAM区域的总空间大小不满足上述操作复用Java-RAM区域的要求,则返回无效的信息,停止申请复用Java-RAM区域。
4.根据权利要求1所述的Java智能卡的RAM复用方法,其特征在于,复用Java-RAM区域进行相应的数据处理之前,还包括如下子步骤:
查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;
若Java-RAM区域的剩余空间大小满足上述操作复用Java-RAM区域的要求,则提供待复用Java-RAM区域空间的起始地址;
将native层上述操作相关的数据从待复用Java-RAM区域空间的起始地址处开始存储,并对该数据进行处理。
5.根据权利要求1所述的Java智能卡的RAM复用方法,其特征在于,复用Java-RAM区域进行相应的数据处理之前,还包括如下子步骤:
在Native层,查询Java-RAM区域的空间大小是否满足上述操作复用Java-RAM区域的要求;
若Java-RAM区域的总空间大小满足上述操作复用Java-RAM区域的要求,而Java-RAM区域的剩余空间大小不满足上述操作复用Java-RAM区域的要求,则分配备份空间,并将Java-RAM区域的数据备份到备份空间,然后提供待复用Java-RAM区域空间的起始地址;
将native层与上述操作相关的数据从待复用Java-RAM区域空间的起始地址处开始存储,并对该数据进行处理。
6.根据权利要求3-5任一项所述的Java智能卡的RAM复用方法,其特征在于,通过调用复用空间申请函数来查询Java-RAM区域的空间是否满足复用Java-RAM区域的要求;
其中,复用空间申请函数具有申请的待复用空间的大小、待复用空间数据后续恢复的地址两个参数,以及待复用空间的起始地址一个返回值。
7.根据权利要求1-5任一项所述的Java智能卡的RAM复用方法,其特征在于,还包括如下步骤:
查询复用Java-RAM区域时是否分配了备份空间;
若未分配备份空间,则重新启动虚拟机,从指定的位置获取处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
8.根据权利要求1-5任一项所述的Java智能卡的RAM复用方法,其特征在于,还包括如下步骤:
查询复用Java-RAM区域时是否分配了备份空间;
若分配了备份空间,则对复用的Java-RAM区域的数据进行恢复,并释放所述备份空间;
待复用的Java-RAM区域的数据恢复后,重新启动虚拟机,从指定的位置获取处理后的数据,并继续解析上层Java层应用的该操作所对应的后续字节码。
9.根据权利要求7或8所述的Java智能卡的RAM复用方法,其特征在于,通过调用复用空间恢复函数查询复用的Java-RAM区域是否分配了备份空间;
其中,复用空间恢复函数具有一个复用空间数据后续恢复的地址参数,并且无返回值。
10.一种Java智能卡,其特征在于,所述Java智能卡执行权利要求1-9任一项所述的Java智能卡的RAM复用方法。
CN202110334580.8A 2021-03-29 2021-03-29 一种Java智能卡及其RAM复用方法 Active CN112925613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110334580.8A CN112925613B (zh) 2021-03-29 2021-03-29 一种Java智能卡及其RAM复用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110334580.8A CN112925613B (zh) 2021-03-29 2021-03-29 一种Java智能卡及其RAM复用方法

Publications (2)

Publication Number Publication Date
CN112925613A true CN112925613A (zh) 2021-06-08
CN112925613B CN112925613B (zh) 2024-07-02

Family

ID=76176445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110334580.8A Active CN112925613B (zh) 2021-03-29 2021-03-29 一种Java智能卡及其RAM复用方法

Country Status (1)

Country Link
CN (1) CN112925613B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751247A (zh) * 2008-11-28 2010-06-23 爱思开电讯投资(中国)有限公司 一种基于标准工具生成Java Card程序库目标代码的方法和设备
CN103530171A (zh) * 2013-10-25 2014-01-22 大唐微电子技术有限公司 一种智能卡虚拟机及其实现方法
JP2015041349A (ja) * 2013-08-23 2015-03-02 大日本印刷株式会社 情報記憶媒体、バイトコード実行方法、及び情報記憶媒体用プログラム
CN109032960A (zh) * 2018-06-29 2018-12-18 北京中电华大电子设计有限责任公司 一种智能卡ram的动态分配方法和数据结构
CN109951563A (zh) * 2019-03-29 2019-06-28 恒宝股份有限公司 一种智能卡更新方法及其更新系统工作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751247A (zh) * 2008-11-28 2010-06-23 爱思开电讯投资(中国)有限公司 一种基于标准工具生成Java Card程序库目标代码的方法和设备
JP2015041349A (ja) * 2013-08-23 2015-03-02 大日本印刷株式会社 情報記憶媒体、バイトコード実行方法、及び情報記憶媒体用プログラム
CN103530171A (zh) * 2013-10-25 2014-01-22 大唐微电子技术有限公司 一种智能卡虚拟机及其实现方法
CN109032960A (zh) * 2018-06-29 2018-12-18 北京中电华大电子设计有限责任公司 一种智能卡ram的动态分配方法和数据结构
CN109951563A (zh) * 2019-03-29 2019-06-28 恒宝股份有限公司 一种智能卡更新方法及其更新系统工作方法

Also Published As

Publication number Publication date
CN112925613B (zh) 2024-07-02

Similar Documents

Publication Publication Date Title
KR100484485B1 (ko) 비휘발성 메모리에의 데이터 저장 방법 및 장치
EP2366152B1 (en) Ruggedized memory device
JP3237101B2 (ja) チップ・カードの事後初期設定方法
WO1998030958A1 (en) Secure multiple application ic card system
KR100528973B1 (ko) 가비지 콜렉션 방법 및 그 장치
CN109710317A (zh) 系统启动方法、装置、电子设备及存储介质
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
KR100772872B1 (ko) 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법
WO2015196946A1 (zh) 一种JavaCard应用功能扩展的实现方法
CN102073544B (zh) 一种基于页操作的EEPROM cache方法
CN111104253B (zh) 一种掉电保护智能卡及其工作方法
CN111488367A (zh) 数据一致性的实现方法、装置、设备及计算机存储介质
EP1575005A2 (en) Method and apparatus for processing an application identifier from a smart cart
CN108984270B (zh) 一种虚拟机的内存分配方法和装置
CN112925613A (zh) 一种Java智能卡及其RAM复用方法
CN110287695A (zh) 一种Java卡及其临时对象的管理方法
US7228532B1 (en) Method and apparatus to facilitate code verification and garbage collection in a platform-independent virtual machine
CN110888674B (zh) 在Python虚拟机中执行安全计算的方法及装置
Oestreicher Transactions in java card
CN111241594A (zh) 交易信息的加签方法、装置、计算机设备和存储介质
CN116933254A (zh) 一种应用程序的进程查杀方法及电子设备
CN110502354B (zh) 一种Java智能卡及其应用程序接口的调用方法
CN114925368A (zh) 用于启动应用程序的安全元件和方法
CN114780302B (zh) 基于openstack云主机的快照回滚方法、系统、装置及存储介质
CN113590212B (zh) 数据库实例的启动方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant