CN106227576A - 一种Java卡应用的功能实现方法及装置 - Google Patents

一种Java卡应用的功能实现方法及装置 Download PDF

Info

Publication number
CN106227576A
CN106227576A CN201610686188.9A CN201610686188A CN106227576A CN 106227576 A CN106227576 A CN 106227576A CN 201610686188 A CN201610686188 A CN 201610686188A CN 106227576 A CN106227576 A CN 106227576A
Authority
CN
China
Prior art keywords
file
java
java card
application
load
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.)
Pending
Application number
CN201610686188.9A
Other languages
English (en)
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.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing Smartchip Microelectronics Technology 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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201610686188.9A priority Critical patent/CN106227576A/zh
Priority to PCT/CN2016/108304 priority patent/WO2018032653A1/zh
Publication of CN106227576A publication Critical patent/CN106227576A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种Java卡应用的功能实现方法及装置,其中,该方法包括:根据待实现功能的库实现源文件生成库实现Java卡可装载文件;根据所述库实现源文件生成库接口源文件;根据所述库接口源文件生成库接口Java卡库文件;根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。

Description

一种Java卡应用的功能实现方法及装置
技术领域
本发明涉及智能卡技术领域,尤其涉及一种Java卡应用的功能实现方法及装置。
背景技术
JAVA卡是一种可以运行JAVA卡程序(JavaCard Applet)的智能卡,它充分利用了JAVA语言的平台无关性,使得JAVA技术“一次编写,随处运行”的思想在智能卡上得以实现。1996年10月,Sun基于斯伦贝谢的研究经验发布了第一版JAVA卡技术规范;1997年2月,金普斯和斯伦贝谢发起了JAVA卡论坛,多家智能卡制造商先后加入到这个组织中,并于1997年底发布了JAVA卡2.0规范。此版规范定义了具体的API接口函数,并引入一个比JAVA虚拟机小得多、但同样满足JAVA语言基本特性的JAVA卡虚拟机。
拥有虚拟机的JAVA卡,使得JAVA卡平台和应用完全分离。一张搭载JAVA卡平台的卡片,能够在平台发行后再下载应用,这是JAVA卡比使用本地语言如C语言的Native卡有着更为便利的优势,一张JAVA卡能够适应不同的应用场景,而不需要开发多个版本的COS(Chip Operation System,片上操作系统)。而平台和应用的分离,是通过统一的API(Application Program Interface,应用程序编程接口)来实现的。想要制定出一个版本的JAVA卡API国际标准,平台层实现API函数,而应用调用API接口来实现功能。
应用开发时,引用标准JAVA卡库包进行编译,生成可下载文件。应用下载到平台后,对平台库包API的调用采用动态链接机制,通过平台编译的Token值索引,找到调用的JAVA包、类和方法,实现相应的功能。在一张JAVA卡发行后,如果不同的应用需要实现相同的功能,传统的实现方法包括:第一种方法,是每个应用都实现一套相同的功能函数;第二种方法,采用JAVA卡传统的补丁方式,将功能实现增加到平台中;第三种方法,重新开发平台,如果为ROM(Read-Only Memory,只读存储器)掩膜的卡片,还需要重新进行平台掩膜。
现有的新增通用功能的方法都有各自的问题:第一种方法,每个应用在应用内部实现一套功能函数,这样导致代码量的冗余,在智能卡有限的空间中,如果单个应用的代码量增大,会导致可加载应用的个数减少,或者卡片成本的增加;第二种方法,JAVA卡传统的补丁方式,一般是在JAVA卡运行环境中,在调用方法的时候进行补丁函数的判断,如果该方法有补丁函数,则运行补丁函数,如果没有补丁函数,则运行现有的函数,这种方法增加了判断的时间,使得卡运行效率降低,而且补丁函数的开发具有较多的限制;第三种方法,重新开发一版新平台,这样不仅导致芯片可能有重新掩膜的成本,而且开发中增加了多个版本的维护成本。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是,如何提供一种能够在Java卡上实现新增功能的有效手段。
解决方案
为解决以上技术问题,本发明在第一方面提供一种Java卡应用的功能实现方法,包括:
根据待实现功能的库实现源文件生成库实现Java卡可装载文件;
根据所述库实现源文件生成库接口源文件;
根据所述库接口源文件生成库接口Java卡库文件;
根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;
依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。
在一种可能的实现方式中,所述根据待实现功能的库实现源文件生成库实现Java卡可装载文件包括:
将所述库实现源文件通过javac编译器引用Java API,生成库实现Java可装载文件;
将所述库实现Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库实现Java卡可装载文件。
在一种可能的实现方式中,所述根据所述库实现源文件生成库接口源文件包括:
去除所述库实现源文件中所有功能的实现代码,只留下类的声明,生成库接口源文件。
在一种可能的实现方式中,所述根据所述库接口源文件生成库接口Java卡库文件包括:
将库接口包源文件通过javac编译器引用Java API,生成库接口Java可装载文件;
将所述库接口Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库接口Java卡外部接口文件;
根据所述库接口Java可装载文件和所述库接口Java卡外部接口文件,采用jar工具生成库接口Java卡库文件。
在一种可能的实现方式中,所述根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件包括:
将所述应用源文件通过javac编译器引用Java API生成应用的Java可装载文件;
将所述应用的Java可装载文件采用Java卡编译器工具converter引用JavaCard、应用安全管理平台Global PlatformAPI和所述库接口Java卡库文件,生成应用的Java卡可装载文件。
在一种可能的实现方式中,所述依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中包括:
先在现有的标准Java卡上,通过JavaCard下载器Loader将所述库实现Java卡可装载文件安装到Java卡中;
再通过JavaCard下载器Loader和安装器Installer将所述应用的Java卡可装载文件下载并安装到Java卡中。
为解决以上技术问题,本发明在第二方面提供一种Java卡应用的功能实现装置,包括:
第一生成模块,用于根据待实现功能的库实现源文件生成库实现Java卡可装载文件;
第二生成模块,用于根据所述库实现源文件生成库接口源文件;
第三生成模块,用于根据所述库接口源文件生成库接口Java卡库文件;
第四生成模块,用于根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;
文件加载模块,用于依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。
在一种可能的实现方式中,所述第一生成模块,具体用于:
将所述库实现源文件通过javac编译器引用Java API,生成库实现Java可装载文件;
将所述库实现Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库实现Java卡可装载文件。
在一种可能的实现方式中,所述第二生成模块,具体用于:
去除所述库实现源文件中所有功能的实现代码,只留下类的声明,生成库接口源文件。
在一种可能的实现方式中,所述第三生成模块,具体用于:
将库接口包源文件通过javac编译器引用Java API,生成库接口Java可装载文件;
将所述库接口Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库接口Java卡外部接口文件;
根据所述库接口Java可装载文件和所述库接口Java卡外部接口文件,采用jar工具生成库接口Java卡库文件。
在一种可能的实现方式中,所述第四生成模块,具体用于:
将所述应用源文件通过javac编译器引用Java API生成应用的Java可装载文件;
将所述应用的Java可装载文件采用Java卡编译器工具converter引用JavaCard、应用安全管理平台Global PlatformAPI和所述库接口Java卡库文件,生成应用的Java卡可装载文件。
在一种可能的实现方式中,所述文件加载模块具体用于:
先在现有的标准Java卡上,通过JavaCard下载器Loader将所述库实现Java卡可装载文件安装到Java卡中;
再通过JavaCard下载器Loader和安装器Installer将所述应用的Java卡可装载文件下载并安装到Java卡中。
有益效果
本发明提供的一种Java卡应用的功能实现方法及装置,与背景技术中第一种方法相比,减少了代码量。如果库功能实现的代码量为n kbytes,应用实现的代码量是mkbytes,当一张卡上有i个应用需要调到该库的功能时,第一种方法需要的代码量是i*(n+m)kbytes,而本方法需要的代码量是n+i*m kbytes,减少了(i-1)*n kbytes的代码量。代码量的减少,使得可以在芯片选型时,选择空间较小,成本较低的芯片。
与背景技术中第二种方法相比,缩短开发时间,降低开发难度,并提高了运行效率。依靠传统的补丁方式实现功能库函数时,需要在设计时就考虑到有可能出现的问题,设计好补丁入口,在实现时,调用全局变量等都有开发的限制,采用Java卡包来实现新增功能的库函数,能缩短开发时间,降低开发难度。运行时,传统的补丁需要在函数调用时判断是否具有补丁函数,在每个方法调用前都增加了运行时间成本,本方法不需要判断函数,提高了运行效率。
与背景技术中第三种方法相比,减少了版本维护的成本,如果在ROM掩膜的芯片上,还节约了芯片掩膜成本。此方法在功能函数缺失或需要新增的时候,只需用Java库实现包下载到Java卡中,并提供相应的库接口包给应用开发的用户,无需重新开发一版COS,减少了COS的版本数量。在ROM掩膜的芯片上,无需再次进行芯片掩膜,直接将功能库进行下载,大大节约了多次掩膜的成本。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出了本发明实施例一的一种Java卡应用的功能实现方法的流程图;
图2示出了本发明实施例一的步骤S101的流程图;
图3示出了本发明实施例一的步骤S102的流程图;
图4示出了本发明实施例一的步骤S103的流程图;
图5示出了本发明实施例一的步骤S104的流程图;
图6示出了本发明实施例一的步骤S105的流程图;
图7示出了本发明实施例一的一种Java卡应用的功能实现装置的结构示意图;
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件未作详细描述,以便于凸显本发明的主旨。
本申请解决了背景技术中存在的问题,将JAVA卡新增的通用功能提炼成库包,每个应用不必单独实现这些功能,直接调用新增的库包,减少了空间的占用。先将库包下载到Java卡上,再将调用库包功能的应用下载到Java卡上。在实现库包的功能时,采用JAVA卡包的实现方式,实现方式灵活,便于快速开发。开发后不需要维护多个版本的平台,只用维护库包;在ROM掩膜的平台上,也免除了重新掩膜的成本。
本申请中的库包是指实现了功能的API包,常见的JAVA卡标准库包包括:java.io、java.lang、javacard.framework、javacard.security、javacardx.crypto等。库包java.io和java.lang定义了一些常见的异常(Exception),javacard.framework定义了JAVA卡平台运行环境的各种操作接口,javacard.security和javacardx.crypto定义了国际算法和密码相关的安全接口。
本申请中的库,指的是Java卡外部库,即卡内未预置的库,需要新增功能的库包。在本申请中,源文件均为.java文件,Java可装载文件为.class文件,Java卡可装载文件为.cap文件,库包(Package)为一系列源文件的集合,库文件为Java卡应用开发需要引用的jar包。库实现包中包含了库实现源文件,库实现源文件中实现了库的功能;库接口包中包含了库接口源文件,库接口源文件只包含了函数接口,没有具体功能实现。
实施例1
图1示出本发明实施例提供的一种Java卡应用的功能实现方法的流程图,如图所示,该方法包括:
步骤S101:根据待实现功能的库实现源文件生成库实现Java卡可装载文件;
库实现包中包含所有库实现源文件,其作为一个JAVA卡的包,基于JAVA卡标准库包进行开发,实现新增库的功能函数。如图2所示,本步骤的具体实现过程为:先通过javac编译器引用Java API,生成库实现包Java可装载文件。然后,通过Java卡编译器工具converter引用JavaCard和GP(Global Platform,应用安全管理平台)API,生成库实现Java卡可装载文件。
javac是java语言编程编译器,全称javacompilation.javac工具,由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。javac可以隐式编译一些没有在命令行中提及的源文件,用-verbose选项可跟踪自动编译。当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从JavaAPI中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。
在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。
Java卡编译器工具converter是java中的转换器,负责数据类型的转换。JavaCard技术主要是让智慧卡或与智慧卡相近的装置上,以具有安全防护性的方式来执行小型的Java Applet,此技术也被广泛运用在SIM卡、提款卡上。
GlobalPlatform(GP)是跨行业的国际标准组织,致力于开发、制定并发布安全芯片的技术标准,以促进多应用产业环境的管理及其安全、可互操作的业务部署。作为一个国际标准组织,其工作重心主要集中在安全单元(SE)、可信执行环境(TEE)和系统消息(Mobile Messaging)等领域,其成熟的技术规范是建立端到端可信业务解决方案的工具,并服务于产业环境的多个成员,支持多种商业模式。GP是全球基于安全芯片的安全基础设施统一的标准的制定者。
步骤S102:根据所述库实现源文件生成库接口源文件;
如图3所示,本步骤的具体实现过程为:根据库实现源文件生成库接口源文件,将库实现源文件中所有功能的实现代码去掉,只留下类的声明。
如果希望库接口包(库接口包为库接口源文件的集合)中含有最少的函数声明,可以将需要提供的接口所在的类和函数都放在最前位置编译。由于Java卡编译器工具converter中JAVA卡外部类按照字母顺序来生成排序的类Token值,需要将提供接口的类排列在包的最前位置。
步骤S103:根据所述库接口源文件生成库接口Java卡库文件;
根据库接口源文件生成库接口Java卡库文件的JAR包,如图4所示,本步骤的具体实现过程为:首先,将库接口源文件通过javac编译器引用Java API,生成库接口Java可装载文件。然后,通过Java卡编译器工具converter引用JavaCard和GP API,生成库接口Java卡外部接口文件。最后,用库接口Java可装载文件和库接口Java卡外部接口文件一起用jar工具生成库接口Java卡库文件。
jar(Java ARchive,Java归档)工具是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个Java applet及其所需组件(.class文件、图像和声音)绑定到JAR文件中,而后作为单个的简单HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。另外,applet编写者也可在JAR文件中用数字签名的方式签写各项以确认其来源。它用Java编写,可与现有的applet代码完全向后兼容且可充分扩展。
步骤S104:根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;
本步骤为应用可装载文件的生成过程,应用需要获取库接口Java卡库文件。如图5所示,本步骤的具体实现过程为:将应用源文件(应用源文件是根据应用规范开发的实现应用功能的源文件)通过javac编译器引用Java API生成应用Java可装载文件后,然后使用Java卡编译器工具converter引用JavaCard、GP API以及步骤S103生成的库接口Java卡库文件,生成应用的Java卡可装载文件。
步骤S105:依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。
如图6所示,本步骤的具体实现过程为:在应用装载前,需要先在现有的标准Java卡上,通过JavaCard Loader(下载器)先将库实现Java卡可装载文件安装到Java卡中。然后,再通过JavaCard Loader(下载器)和Installer(安装器)将应用的Java卡可装载文件下载并安装进Java卡中,完成应用的下载和安装,并可以使用。
本发明实施例提供的一种Java卡应用的功能实现方法,与背景技术中第一种方法相比,减少了代码量。如果库功能实现的代码量为n kbytes,应用实现的代码量是mkbytes,当一张卡上有i个应用需要调到该库的功能时,第一种方法需要的代码量是i*(n+m)kbytes,而本方法需要的代码量是n+i*m kbytes,减少了(i-1)*n kbytes的代码量。代码量的减少,使得可以在芯片选型时,选择空间较小,成本较低的芯片。
与背景技术中第二种方法相比,缩短开发时间,降低开发难度,并提高了运行效率。依靠传统的补丁方式实现功能库函数时,需要在设计时就考虑到有可能出现的问题,设计好补丁入口,在实现时,调用全局变量等都有开发的限制,采用Java卡包来实现新增功能的库函数,能缩短开发时间,降低开发难度。运行时,传统的补丁需要在函数调用时判断是否具有补丁函数,在每个方法调用前都增加了运行时间成本,本方法不需要判断函数,提高了运行效率。
与背景技术中第三种方法相比,减少了版本维护的成本,如果在ROM掩膜的芯片上,还节约了芯片掩膜成本。此方法在功能函数缺失或需要新增的时候,只需用Java库实现包下载到Java卡中,并提供相应的库接口包给应用开发的用户,无需重新开发一版COS,减少了COS的版本数量。在ROM掩膜的芯片上,无需再次进行芯片掩膜,直接将功能库进行下载,大大节约了多次掩膜的成本。
实施例2
图7示出本发明实施例提供的一种Java卡应用的功能实现装置的结构示意图,如图所示,该装置包括:
第一生成模块71,用于根据待实现功能的库实现源文件生成库实现Java卡可装载文件;
第二生成模块72,用于根据所述库实现源文件生成库接口源文件;
第三生成模块73,用于根据所述库接口源文件生成库接口Java卡库文件;
第四生成模块74,用于根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;
文件加载模块75,用于依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。
在一种可能的实现方式中,所述第一生成模块71,具体用于:
将所述库实现源文件通过javac编译器引用Java API,生成库实现Java可装载文件;
将所述库实现Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库实现Java卡可装载文件。
在一种可能的实现方式中,所述第二生成模块72,具体用于:
去除所述库实现源文件中所有功能的实现代码,只留下类的声明,生成库接口源文件。
在一种可能的实现方式中,所述第三生成模块73,具体用于:
将库接口包源文件通过javac编译器引用Java API,生成库接口Java可装载文件;
将所述库接口Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库接口Java卡外部接口文件;
根据所述库接口Java可装载文件和所述库接口Java卡外部接口文件,采用jar工具生成库接口Java卡库文件。
在一种可能的实现方式中,所述第四生成模块74,具体用于:
将所述应用源文件通过javac编译器引用Java API生成应用的Java可装载文件;
将所述应用的Java可装载文件采用Java卡编译器工具converter引用JavaCard、应用安全管理平台Global PlatformAPI和所述库接口Java卡库文件,生成应用的Java卡可装载文件。
在一种可能的实现方式中,所述文件加载模块75具体用于:
先在现有的标准Java卡上,通过JavaCard下载器Loader将所述库实现Java卡可装载文件安装到Java卡中;
再通过JavaCard下载器Loader和安装器Installer将所述应用的Java卡可装载文件下载并安装到Java卡中。
本实施例为实施例一的方法相对应的装置,具有实施例一的全部有益技术效果,在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

Claims (12)

1.一种Java卡应用的功能实现方法,其特征在于,包括:
根据待实现功能的库实现源文件生成库实现Java卡可装载文件;
根据所述库实现源文件生成库接口源文件;
根据所述库接口源文件生成库接口Java卡库文件;
根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;
依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。
2.根据权利要求1所述的Java卡应用的功能实现方法,其特征在于,所述根据待实现功能的库实现源文件生成库实现Java卡可装载文件包括:
将所述库实现源文件通过javac编译器引用Java API,生成库实现Java可装载文件;
将所述库实现Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库实现Java卡可装载文件。
3.根据权利要求1所述的Java卡应用的功能实现方法,其特征在于,所述根据所述库实现源文件生成库接口源文件包括:
去除所述库实现源文件中所有功能的实现代码,只留下类的声明,生成库接口源文件。
4.根据权利要求1所述的Java卡应用的功能实现方法,其特征在于,所述根据所述库接口源文件生成库接口Java卡库文件包括:
将库接口包源文件通过javac编译器引用Java API,生成库接口Java可装载文件;
将所述库接口Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库接口Java卡外部接口文件;
根据所述库接口Java可装载文件和所述库接口Java卡外部接口文件,采用jar工具生成库接口Java卡库文件。
5.根据权利要求1所述的Java卡应用的功能实现方法,其特征在于,所述根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件包括:
将所述应用源文件通过javac编译器引用Java API生成应用的Java可装载文件;
将所述应用的Java可装载文件采用Java卡编译器工具converter引用JavaCard、应用安全管理平台Global PlatformAPI和所述库接口Java卡库文件,生成应用的Java卡可装载文件。
6.根据权利要求1所述的Java卡应用的功能实现方法,其特征在于,所述依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中包括:
先在现有的标准Java卡上,通过JavaCard下载器Loader将所述库实现Java卡可装载文件安装到Java卡中;
再通过JavaCard下载器Loader和安装器Installer将所述应用的Java卡可装载文件下载并安装到Java卡中。
7.一种Java卡应用的功能实现装置,其特征在于,包括:
第一生成模块,用于根据待实现功能的库实现源文件生成库实现Java卡可装载文件;
第二生成模块,用于根据所述库实现源文件生成库接口源文件;
第三生成模块,用于根据所述库接口源文件生成库接口Java卡库文件;
第四生成模块,用于根据应用源文件生成应用的Java可装载文件,并根据所述应用的Java可装载文件和所述库接口Java卡库文件生成应用的Java卡可装载文件;
文件加载模块,用于依次将所述库实现Java卡可装载文件和所述应用的Java卡可装载文件安装到Java卡中。
8.根据权利要求7所述的Java卡应用的功能实现装置,其特征在于,所述第一生成模块,具体用于:
将所述库实现源文件通过javac编译器引用Java API,生成库实现Java可装载文件;
将所述库实现Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库实现Java卡可装载文件。
9.根据权利要求7所述的Java卡应用的功能实现装置,其特征在于,所述第二生成模块,具体用于:
去除所述库实现源文件中所有功能的实现代码,只留下类的声明,生成库接口源文件。
10.根据权利要求7所述的Java卡应用的功能实现装置,其特征在于,所述第三生成模块,具体用于:
将库接口包源文件通过javac编译器引用Java API,生成库接口Java可装载文件;
将所述库接口Java可装载文件通过Java卡编译器工具converter引用JavaCard和应用安全管理平台Global PlatformAPI,生成库接口Java卡外部接口文件;
根据所述库接口Java可装载文件和所述库接口Java卡外部接口文件,采用jar工具生成库接口Java卡库文件。
11.根据权利要求7所述的Java卡应用的功能实现装置,其特征在于,所述第四生成模块,具体用于:
将所述应用源文件通过javac编译器引用Java API生成应用的Java可装载文件;
将所述应用的Java可装载文件采用Java卡编译器工具converter引用JavaCard、应用安全管理平台Global PlatformAPI和所述库接口Java卡库文件,生成应用的Java卡可装载文件。
12.根据权利要求7所述的Java卡应用的功能实现装置,其特征在于,所述文件加载模块具体用于:
先在现有的标准Java卡上,通过JavaCard下载器Loader将所述库实现Java卡可装载文件安装到Java卡中;
再通过JavaCard下载器Loader和安装器Installer将所述应用的Java卡可装载文件下载并安装到Java卡中。
CN201610686188.9A 2016-08-18 2016-08-18 一种Java卡应用的功能实现方法及装置 Pending CN106227576A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610686188.9A CN106227576A (zh) 2016-08-18 2016-08-18 一种Java卡应用的功能实现方法及装置
PCT/CN2016/108304 WO2018032653A1 (zh) 2016-08-18 2016-12-01 一种Java卡应用的功能实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610686188.9A CN106227576A (zh) 2016-08-18 2016-08-18 一种Java卡应用的功能实现方法及装置

Publications (1)

Publication Number Publication Date
CN106227576A true CN106227576A (zh) 2016-12-14

Family

ID=57553171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610686188.9A Pending CN106227576A (zh) 2016-08-18 2016-08-18 一种Java卡应用的功能实现方法及装置

Country Status (2)

Country Link
CN (1) CN106227576A (zh)
WO (1) WO2018032653A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124373A (zh) * 2019-12-26 2020-05-08 武汉精鸿电子技术有限公司 一种测试软件开发方法、装置及测试设备
CN111880800A (zh) * 2020-06-19 2020-11-03 深圳融卡智能科技有限公司 应用下载方法与应用下载系统
CN112148296A (zh) * 2020-08-18 2020-12-29 华控清交信息科技(北京)有限公司 一种编译运行方法、装置和用于编译运行的装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125687A (zh) * 2018-11-01 2020-05-08 北京润信恒达科技有限公司 对安全元件中的应用程序进行开发的方法及系统
CN110287695B (zh) * 2019-06-25 2020-12-25 恒宝股份有限公司 一种Java卡及其临时对象的管理方法
CN113568637B (zh) * 2021-07-14 2024-05-03 武汉天喻信息产业股份有限公司 一种智能卡系统包更新管理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030051233A1 (en) * 2001-09-13 2003-03-13 Ksheerabdhi Krishna Code distribution and synthesis
CN103309696A (zh) * 2012-03-15 2013-09-18 中国移动通信集团公司 一种Java卡扩展库更新方法、装置和Java卡
CN104102507A (zh) * 2014-06-24 2014-10-15 飞天诚信科技股份有限公司 一种JavaCard应用功能扩展的实现方法
CN105630516A (zh) * 2014-10-28 2016-06-01 苏州融卡智能科技有限公司 适用于java卡上应用软件的补丁升级方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010007146A1 (en) * 1999-12-23 2001-07-05 Uwe Hansmann Method for providing a set of software components
US7506175B2 (en) * 2000-11-06 2009-03-17 International Business Machines Corporation File language verification
CN101739404B (zh) * 2008-11-05 2012-08-29 爱思开电讯投资(中国)有限公司 字节码优化数据库及其建立方法以及字节码优化方法
CN101986740A (zh) * 2010-09-14 2011-03-16 中国联合网络通信集团有限公司 一种java卡

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030051233A1 (en) * 2001-09-13 2003-03-13 Ksheerabdhi Krishna Code distribution and synthesis
CN103309696A (zh) * 2012-03-15 2013-09-18 中国移动通信集团公司 一种Java卡扩展库更新方法、装置和Java卡
CN104102507A (zh) * 2014-06-24 2014-10-15 飞天诚信科技股份有限公司 一种JavaCard应用功能扩展的实现方法
CN105630516A (zh) * 2014-10-28 2016-06-01 苏州融卡智能科技有限公司 适用于java卡上应用软件的补丁升级方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124373A (zh) * 2019-12-26 2020-05-08 武汉精鸿电子技术有限公司 一种测试软件开发方法、装置及测试设备
CN111880800A (zh) * 2020-06-19 2020-11-03 深圳融卡智能科技有限公司 应用下载方法与应用下载系统
CN111880800B (zh) * 2020-06-19 2023-10-31 无锡融卡科技有限公司 应用下载方法与应用下载系统
CN112148296A (zh) * 2020-08-18 2020-12-29 华控清交信息科技(北京)有限公司 一种编译运行方法、装置和用于编译运行的装置

Also Published As

Publication number Publication date
WO2018032653A1 (zh) 2018-02-22

Similar Documents

Publication Publication Date Title
CN106227576A (zh) 一种Java卡应用的功能实现方法及装置
CN103530156B (zh) 动态加载和调用程序的方法及装置
CN108182068B (zh) 基于微服务的部署交付件的生成方法及装置、存储介质
CN110134378A (zh) 应用程序创建方法及装置、计算机设备及存储介质
CN103713902B (zh) 一种基于Android系统的BOA编译方法和系统
US20020093856A1 (en) File language verification
CN105893061A (zh) 应用程序开发方法及系统
CN106250124A (zh) 功能模块跨平台运行的实现方法和装置
CN102902911B (zh) 一种在Java虚拟机中安全运行第三方代码的方法
WO2024045382A1 (zh) 区块链中实现反射机制
CN105404794B (zh) Java应用软件的保护方法和装置
CN105630534A (zh) 基于TrustZone架构的应用程序执行方法、装置和终端
CN109598107A (zh) 一种基于应用安装包文件的代码转换方法及装置
US20080222607A1 (en) Extending Portability of Java Code Through the Use of AOP
CN105094878A (zh) 一种集成系统库文件的方法和装置
CN106909409A (zh) 一种运行应用程序的apk插件的方法及装置
CN109240733A (zh) 一种基于安卓系统更新广告sdk的方法及终端
CN103150161B (zh) 基于MapReduce计算模型的任务封装方法及装置
CN105005497A (zh) 一种Java卡虚拟机中本地函数的调用方法及装置
CN103530165A (zh) 一种应用于物联网行业的java解决方案
CN101593258B (zh) 一种在软件保护装置中实现.Net虚拟机的系统和方法
CN110888674A (zh) 在Python虚拟机中执行安全计算的方法及装置
CN116342283A (zh) 可信智能合约实现方法、装置、设备及可读存储介质
CN106778270B (zh) 一种恶意应用程序的检测方法及系统
Markantonakis The case for a secure multi-application smart card operating system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161214