- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
javacard平台详解
PAGE \* MERGEFORMAT8
HYPERLINK /javacardsolutions/article/details/6656749 java card平台详解(一)
java卡我想很多人不陌生,有些人已经用过,在java卡上开发applet应用,有些人开发过java卡平台,使用在sun那买的授权之后提供的demo实现,或者是将要进行相关的工作的人。在这里我不想说一些大家很容易就能找到的资料,而是介绍一些更深层次的东西,而又没有侵犯到sun的保密性。
主要分为以下几个部分:
1. java卡框架,java卡的主要组成部分
2. java卡的运行机制,java卡到底是如何执行、如何工作的
3. java卡的API库,如何定制自己的API库
4. java卡的CAP文件加载器
5. java卡的性能优化
java卡框架
native cos的基本架构
首先我们来回顾一下以往native cos的基本架构:
HAL层、通讯层、文件系统、算法、安全模块、个人化命令、应用命令等。
一般一个native cos只实现一个应用规范,也有同时实现两个或者更多应用规范的COS,COS实现规范里面定义的所有应用命令。
卡片上电之后,收到卡机发来的APDU后,通过解析APDU头的INS(还需要检查CLA、P1、P2之类)等步骤来找到该命令所对应的函数执行并返回结果。可以简单点来说就是一个APDU指令对应于卡内的一个功能函数,对于非规范内规定的INS,卡片一般都直接返回6d00表示不支持或者无法解析的指令。
java卡特点的简单介绍
java卡是个多应用智能卡平台,与native cos有本质的区别 ,它不是实现某个应用规范或者多个应用规范的cos,而是为cos应用开发人员提供了另外一种途径来实现应用规范。简单的类比一下,java卡和native卡的区别就相当于PC上用C语言开发应用程序和用java语言开发应用程序的区别。
java卡是个平台,是个应用容器,可以动态的装载不同的应用,也可以装载很多相同应用的不同实例。java卡把native卡里面的HAL层、通讯层、文件系统、算法、安全等都封装成了API库,所以java卡上的智能卡应用开发人员和传统的native卡的开发人员相比,工作难度要降低了很多,像文件系统、掉电保护等等通通不用再设计了。
所以java卡和传统native卡在架构上自然有很大的区别。
本章主要从代码级的角度来看java卡的执行流程。
#######################################################################
先看一个简单的java卡的applet代码(HelloWord):
从下面的代码可以看出一个java卡应用的简单构成,install函数和process函数。其它可选接口如select、deselect和uninstall函数这里没有。
install函数负责安装这个应用,进行一些对象的初始化和注册,告诉jcre这个应用已经被成功安装,接下来就可以对这个应用进行选择和其它命令执行。
process函数是应用的最重要的命令处理函数,这里解析apdu的ins,进行命令分派,相当于native cos的commandDispatcher函数。当然这个示例比较简单,仅仅是返回一个helloword字符串。
package com.sun.javacard.samples.HelloWorld;
import javacard.framework.*;
public class HelloWorld extends Applet{??? private byte[] echoBytes;??? private static final short LENGTH_ECHO_BYTES = 256;??? //private test testobj;
??? /**???? * Only this classs install method should create the applet object.???? */??? protected HelloWorld()??? {??? ?//testobj = new test();??????? ??????? //testobj.setsvalue((short)10);??????? //testobj.setivalue((int)20);??????? echoBytes = new byte[LENGTH_ECHO_BYTES];??????? register();??? }
??? /**???? * Installs this apple
您可能关注的文档
最近下载
- 高中数学选择性必修第一册:2-3-3点到直线的距离公式-教学课件.pptx
- 初中语文 (部编版) 七年级上册(2024修订) 第六单元 24 寓言四则 穿井得一人课件(共19张PPT)).pptx VIP
- 信捷DS3-DS3E-DS3L系列伺服驱动器用户使用手册.pdf
- 2025年运动康复师 老年肌少症预防与康复习题库.doc VIP
- 老年康复习题.pdf VIP
- 大队委竞选个人简介范文.pdf VIP
- 营养指导员理论知识考试题(附答案).pdf VIP
- 2024年注册安全工程师真题答案与解析【法规】.docx VIP
- 个人简历表格下载word(最新).pdf VIP
- 老年康复习题.pdf VIP
文档评论(0)