java卡 apdu_java智能卡APDU学习笔记

因项目需要,利用APDU通信协议在ME手机端和卡端进行通讯。在实践的过程中遇到一些问题,先记录如下。

APDU协议,即是智能卡与读写器间的应用层协议,在ISO7816-4[7]中定义了该协议的结构格式。APDU数据有两种结构,读写器使用的APDU结构为命令APDU,C-APDU(Command APDU),智能卡方面使用的APDU结构为响应APDU,R-APDU(Reponse APDU)。

命令APDU

20180110203945356362.png

必选部分:CLA, INS, P1, P2

可选部分:LC, 数据段, LE

CLA确定APDU的类别,INS确定要执行的指令,P1和P2是参数。

LC确定数据段的长度,数据段是发送到智能卡上的数据,LE确定读写器期待智能卡响应的字节数。

响应APDU

20180110203945358315.png

可选部分:数据段

必选部分:SW1, SW2

数据段的长度由命令APDU的LE确定。

SW1和SW2是状态字。

卡侧APDU编程实践

JAVACARD有一系列APDU处理的方法可以调用,详情可以查看相应的说明文档。先简单记录下我在实践过程中遇到的一些问题,及相应的答案。

在处理一个APDU命令前,首先要调用getBuffer命令取得APDU缓冲区数组的引用,通过该数组的引用,即可访问APDU缓冲区数组的内容。

public voidprocess(APDU apdu) {byte[] buffer =apdu.getBuffer();switch(buffer[ISO7816.OFFSET_INS]) {

}

}

首先要注意两点,第一:其中取得缓冲数组的引用给buffer时,注意buffer需在方法中定义,即定义为局部数组。第二:此时获得的buffer数组中仅仅包含APDU的命令头,即CLA, INS, P1, P2,P3,不包括后续的数据(即P3后的数据)。如需接受完整的APDU指令,需要利用

byte buffer[]=apdu.getBuffer();short bytesRead=apdu.setIncomingAndReceive();

注意apdu.setIncomingAndReceive()返回数据长度,为命令头后面的数据长度,即LC的值。

原文:http://www.cnblogs.com/vimzhu/p/5797581.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
APDUAnalysiser程序的设计最终目标是实现对高通QCAT Log分析工具的增强,对UIM Debug信息实现完整解析。使用此工具可以使开发人员更轻松、简单地从内容繁杂的Log文件中找到、提取出感兴趣的信息内容,达到快速分析、定位、解决故障的目的。 本文档分为三个部分,分别介绍APDUAnalysiser的工作原理、功能说明和安装要点。 1.工作原理 简要说明一下对Log文件导入的支持原理。 APDUAnalysiser支持两种类型Log文件的导入: 通过QXDM抓取的Log文件(*.isf)和由isf文件转化而成的文本文件(*.txt)。 程序仅实现了对文本文件的内容读取和解析,isf文件由于其格式高通未公布,其文件结构属于黑盒状态,暂时无法直接解析。 当前对isf文件的导入方案为:通过QCAT先转化为文本再导入。 当用户选取某个isf文件后,程序自动到QCAT安装目录调用qcat程序进行Log文件的文本转换,将转换结果保存到同路径同名称的文本文件中,然后将该文本通过APDUAnalysiser导入。 2.功能说明 APDUAnalysiser工具提供以下类型log的解析功能,非以下类型的信息将被工具自动过滤掉。 1).普通调试信息 APDUAnalysiser支持对普通调试信息的彩色显示,对调试信息按文件名称进行定制化过滤。 高通工具仅支持对普通调试信息按等级和功能模块过滤,这样往往容易在Log中产生大量的垃圾信息,使有用的信息不容易被发现。 APDUAnalysiser实现的对文件名称定制过滤功能有效地解决了这一问题,工具还支持定制指定的文件名和关键字集合,可以更加灵活方便地实现信息的过滤。 2).UIM Debug信息 高通工具不支持对这种类型Log的解析,开发人员只能通过经验或查阅相关规范文档来理解Log中的意思。不仅费时费力,而且不全面,容易出错。 APDUAnalysiser目标是对这类信息实现完全的自动化解析,这部分工作量非常大,目前对常用的一些信息已经有很好的解析,可以对当前的开发工作进行支持,包括如下类型的指令: a.UTK主动式命令Tag解析(支持UTK发短信的TPDU解析); b.文件交互命令解析; c.上电话本记录初始化解析; d.短信读取及TPDU解析(与QCAT工具显示方式相同,支持中文解析); e.鉴权操作Tag解析; 3).OTA信息 列表显示及按类型过滤显示。这部分Log的显示高通工具做得本身比较好,这里的功能与高通工具类似。 工具支持对字体大小和颜色的定制显示,支持对显示列表内容的快速搜索功能。在实际使用中应该能起到一定的作用。 3.安装要点 Step1:确认电脑中已经安装jre5或以上的java运行环境 Step2:在系统环境变量中添加 项:_JAVA_OPTIONS, 值:-Xms24m -Xmn1m -Xmx256m Step3.将工具包解压后,双击dist\APDUAnalysiser.jar开始使用工具 ¤请确定已安装高通工具QCAT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值