RSS
热门关键字:
当前位置 : 主页>嵌入式开发>VxWorks>列表

JavaCard开发教程之消息模型

来源:我要研发网 作者: 时间:1970-01-01 点击:



图1中说明消息传递模型是所有Java Card通信基础。它核心就是应用程序协议数据单元(APDU),CAD和Java Card框架之间交换一个逻辑数据包。JavaCard框架接收任何CAD发送进来APDU命令并且传送到相应小应用程序中。小应用程序处理APDU命令,然后返回一个响应APDU。那些APDU遵守国际标准规格ISO/IEC 7816 - 3和7816 - 4。


  图1使用消息传递模型通讯

  读卡器和卡之间通信通常基于下面两种连接协议一种,面向字节T = 0,或者面向数据块T = 1。还可能会用到被称为T = USB和T = RF替换协议。JCRE APDU类向应用程序隐藏了一些协议细节,但不是全部,因为T = 0协议相当复杂。
字串7


  ⒈APDU命令

  一个APDU命令结构由它第一个字节值控制,大部分情况下看上去如下所示:


图2、APDU命令

  一个APDU命令有一个必须有头和一个可选体,包含:

  · CLA(1字节):这个必要字段识别指令一个特定应用程序类。有效CLA值在ISO 7816 - 4规范中定义:

表格1、ISO 7816 CLA值

CLA 值 指令类
0x0n, 0x1n ISO 7816 - 4卡指令,比如文件存取和安全操作
20 to 0x7F 保留
0x8n or 0x9n 你可以用作你特定应用程序指令ISO/IEC 7816 - 4格式,根据标准解释' X '
0xAn 特定应用程序或者供应商指令
B0 to CF 你可以用作特定应用程序ISO/IEC 7816 - 4格式
D0 to FE 特定应用程序或者供应商指令
FF 保留给协议类型选择

字串9


  · 理论上,你可以使用所有CLA值0x80或者更高值来用于特定应用程序指令,但是在许多现在Java Card实现中,只有黑体显示是实际认可

  · INS(1字节):这个必需字段指明CLA字段中标示指令类中一个特定指令。ISO 7816 - 4标准指定用于访问卡上数据基本指令,当它根据在像标准中定义卡上文件系统那样结构化时候。附加功能已经在这个标准中其它地方说明,其中一些是安全功能。表2中是一个ISO 7816指令列表。只有当使用一个相应CLA字节值时,你才可以根据标准定义你自己特定应用程序INS值,。 字串4

  表格2、当 CLA = 0x时ISO 7816 - 4 INS值

INS 值 命令描述
0E Erase Binary
20 Verify
70 Manage Channel
82 External Authenticate
84 Get Challenge
88 Internal Authenticate
A4 Select File
B0 Read Binary
B2 Read Record(s)
C0 Get Response
C2 Envelope
CA Get Data
D0 Write Binary
D2 Write Record
D6 Update Binary
DA Put Data
DC Update Record
E2 Append Record

字串3

  · P1(1字节):这个必需字段定义指令参数1。你可以使用这个字段来检验INS字段,或者用于输入数据。

  · P2(1字节):这个必需字段定义指令参数⒉你可以使用这个字段来检验INS字段,或者用于输入数据。

  · Lc(1字节):这个可选字段是命令数据字段字节数。

  · 数据字段(可变,字节Lc数):这个可选字段保存命令数据。

  · Le(1字节):这个可选字段指定在期望响应数据字段中极限字节数。

  取决于命令数据存在与否以及相应是否必须,命令APDU有四种变化。只有在你使用协议T = 0时,你才需要关心这些变化:
字串2



图3、APDU命令四个可能结构

  一个典型应用程序将以不同结构方式使用不同APDU命令。

  2、响应APDU

  响应APDU格式很简单


图4、响应APDU

  和一个APDU命令相似,响应APDU有可选择和必要字段:
字串3


  · 数据字段(可变长度,由APDU命令中Le确定):这个可选择字段包含小应用程序返回数据。

  · SW1(1字节):这个必要字段是状态字1。

  · SW2(1字节):这个必要字段是状态字2。

  这些状态字值在ISO 7816 - 4规范中定义:


图5、响应状态码

  Java Card框架应用编程接口中ISO7816 Java接口定义了许多常数来帮助规范返回错误代码。

  3、过程APDU

  每当有一个进入APDU用于所选择小应用程序,JCRE就调用小应用程序process ()方法,把进入APDU作为一个参数传送。这个小应用程序必须解析APDU命令,处理数据、生成一个响应APDU,然后把控制权返回给JCRE。 字串4

  RMI(JCRMI)通讯模型

  第二种通信模型依靠J2SE RMI分布式对象模型一个子集。

  在RMI模型中,一个服务器应用程序创建并生成可访问远程对象,并且一个客户应用程序获得到远程对象远程引用,然后调用它们远程方法。在JCRMI中,Java Card小应用程序是服务器,而主应用程序是客户端。

  JCRMI由类RMIService提供到扩展程序包javacardx.rmi中。JCRMI消息被封装到传入RMIService方法APDU对象中,换句话说,JCRMI提供了一个基于APDU消息传递模型分布式对象模型机制,通过这个机制服务器和客户端通信,来回传送方法信息、参数和返回值。 字串6

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
热点关注
相关文章
相关文章
媒体推荐链接