APDU定义了主机和JAVA卡之间交互的数据格式,绝大部分卡片遵循此数据格式,当然为了保密或其它原因是可以自定义新的数据格式。APDU分为发送命令(C-APDU)和返回命令(R-APDU)。

一、C-APDU元素说明:

发送命令(C-APDU)的格式如下,包含一个必须头部段和一个可选数据段:

1、CLA(1字节):用于命令类别的标示,传输安全控制,传输信道说明等。

比特值

说明

0XXXXXXX

为ISO规定的指令类别,0x00,0x04(线路保护)等

1XXXXXXX

为私有自定义指令类别,0x80,0x84(线路保护)等

2、INS(1字节):用于指明CLA字段中标示的指令类中的一个特定指令。

ISO的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,如没有填0x00。

4、P2(1字节):指令参数2,如没有填0x00。

5、LC(1字节):这个可选的字段是命令的数据字段的字节数。

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

7、四种C-APDU结构如下:

二、R-APDU元素说明:

返回命令(R-APDU)的格式如下,包含一个可选数据段和一个必须状态值:

数据字段(可变长度,由APDU命令中的LE确定):这个可选择的字段包含卡片返回的数据。

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

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

SW1-SW2成功一般为9000,其他值为某种状态、警告或者错误!

常用SW1-SW2值:

9000: 执行成功

6100: 数据被截断

6283: 应用无效

6300: 认证失败

6400: 原因不明

6700: 长度不对

6982: 需要PIN验证

6983: 文件无效

6984: 数据无效

6985: 条件不满足

6986: 不允许该命令

6982: 安全条件不满足

6987: 安全消息丢失

6988: 安全消息不正确

6999: 应用选择失败

6A80: 数据错误

6A81: 功能不支持

6A82: 文件找不到

6A83: 记录找不到

6A84: 没有足够的空间

6A86: 不正确的参数(P1,P2)

6A88: 引用数据没找到

6B00: 错误的参数 (P1,P2)

6C00: 长度错误 (Le)

6D00: INS不支持

6E00: CLA 不支持

6F00: 未知错误

java sw_APDU格式详解相关推荐

  1. Java字节码(.class文件)格式详解(一)

    原文链接:http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html 小介:去年在读<深入解析JVM>的时候写的,记得当时还 ...

  2. java方法怎么写_java方法定义格式详解,java方法怎么写?

    对于java方法你了解多少呢?你知道java方法应该如何写吗?下面要给大家介绍的就是和java方法相关的内容,一起来了解一下这个概念吧. 在学习运算符的时候,都为每个运算符单独的创建一个新的类和mai ...

  3. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  4. java拉姆达表达式事例,Java Lambda表达式详解和实例

    简介 Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体( ...

  5. 4.6 W 字总结!Java 11—Java 17特性详解

    作者 | 民工哥技术之路 来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q Java 11 特性详解 基于嵌套的访问控制 与 Java 语言 ...

  6. 代码检查规则:Java语言案例详解

    本节课程为<代码检查规则:Java语言案例详解>, 通常情况下Java的代码检查规则可以分为以下十类: 接下来,让我们具体来看看每个分类的内容. 一.源文件规范 该类规范主要从文件名.文件 ...

  7. Java教程:Java continue语句详解

    Java教程有时强迫一个循环提早反复是有用的,也就是,你可能想要继续运行循环,但是要忽略这次重复剩余的循环体的语句,所以 Java 提供了 continue 语句.continue 语句是 break ...

  8. java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty

    大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath , ...

  9. Java中super详解

    目录 Java中super详解 super的作用: 1.     通过super可以访问父类的构造方法 2.   通过super可以访问父类的属性(非私有) 3.        通过super可以访问 ...

  10. Java期末复习题详解

    Java期末复习题详解 选择题 1 .class: .java: .cpp: .txt: 2 3 4 封装: 继承: 覆盖: 重载: 5 构造函数: 特点: 6 异常处理: 注:catch可以进行多重 ...

最新文章

  1. 微生物组学研究的可再现性、可重现性、稳定性与普适性
  2. 使用 Stream API 高逼格 优化 Java 代码!
  3. 10行Python代码自动清理电脑内重复文件,解放双手!
  4. Android香露刀之SeekBar之双管齐下
  5. 机器学习之决策树的原理及sklearn实现
  6. Django models模型
  7. 购物商城Web开发第二十三天
  8. 为企业提供本地销售人员的Universal Avenue获1000万美元A轮融资
  9. ssm框架简单实现文件上传
  10. 两岸三地在线编程学习网站大全
  11. 笔记本windows7设置WIFI教程(超详细)
  12. Wythoff's game
  13. spring boot项目发送邮件
  14. python如何读取csv文件中的某一张表_python 读取csv文件中某一段月份中的数据?...
  15. python numpy函数手册_NumPy常用中文手册.pdf
  16. 网页中插入透明Flash的方法和技巧
  17. 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个
  18. 如何使用FFmpeg的解码器
  19. UEditor上传漏洞修复
  20. 一款适合全自动智能锁电机驱动芯片方案

热门文章

  1. 使用HDMI转DVI线组双屏
  2. 使用SmartUpload上传文件报错
  3. GeoNet: Deep Geodesic Networks for Point Cloud Analysis
  4. 北斗卫星导航系统的研究及应用
  5. 大型网站技术架构 读书笔记2 核心架构要素
  6. 翟菜花:为什么说社区会是虚拟偶像驶向未来的新航标?
  7. 2020-02-21
  8. Android修改PackageInstaller自动安装指定应用,android开发网易新闻
  9. TEX studio:IEEE latex模板的下载与使用
  10. 如何在Mac计算机上添加删除打印机和扫描仪,以及高质量扫描文档