博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PBOC APDU命令解析【转】
阅读量:6275 次
发布时间:2019-06-22

本文共 1474 字,大约阅读时间需要 4 分钟。

应用层发出的命令报文和卡片回送到应用层的响应报文统称为应用协议数据单元(APDU)。响应是
和命令相对应的,通常被称为APDU命令-响应对。在一个APDU命令-响应对中,命令报文或响应报文都可

能包含数据。

 

 

1:C-APDU 格式

  C-APDU由一个4字节长的必备头后跟一个变长的条件体组成。
  C-APDU中发送的数据长度用Lc(命令数据域的长度)表示。
       R-APDU中期望返回的数据字节数用Le(期望数据长度)表示。
  当Le存在且值为0时,表示要求可能的最大字节数(≤256)。
  在应用选择中所给出的读记录(READ RECORD)命令、选择(SELECT)命令Le应该等于“00”。

 

图1:APDU命令结构

 

 

2:C-APDU命令内容

  命令均由终端应用层(TAL)发出,它用5个字节组成的命令头通过TTL向IC卡发送指令。命令头由5个连续字节CLA、INS、P1、P2和P3组成:
CLA:命令类别;INS:指令代码;P1 和 P2:附加参数;P3:根据不同的 INS, 指明发送给 IC 卡的命令中数据的字节长度或期待 IC 卡响应的最长度。

 

图2:APDU命令内容   

 

3:R-APDU格式

当使用T=1协议时,对于所有Le=’00’的命令,状态字SW1 SW2=“90 00”或“61 La”均表示命令的成功执行。
但由于可读性的需要,这两种状态字只用了“90 00”作为参考。
R-APDU格式由一个变长的条件体和后随两字节长的必备尾组成,见图3。

 

图3:APDU响应结构

 

R-APDU中接收到的数据字节数用Lr(响应数据域长度)表示。Lr不通过传输层返回,应用层在需要时可以依靠响应报文数据域对象结构计算出Lr。

响应结尾的2个字节代码是命令的处理状态,它们通过传输层回送。

 

表1:响应 APDU 内容

 

4:命令报文和响应报文

 

A:读记录命令

表2:读记录命令报文

 

表3:读记录命令引用控制参数(2)

 

 

B:选择命令

选择命令通过文件名或AID来选择IC卡中的PSE或ADF。成功执行该命令设定PSE或ADF的路径。
后续命令作用于SFI选定的PSE或ADF相联系的AEF。从IC卡返回的响应报文包含回送FCI。

表4:SELECT 命令报文

 

表5:SELECT命令引用控制参数

 

表6:SELECT命令的可选参数

 

 

 响应报文数据域

 响应报文中数据域应包括所选择的PSE或ADF的FCI。在选择命令的响应报文回送的FCI模板中,除了“BF0C”模板中包含的数据元之外,不应有附加数据元。
 表7定义了成功选择PSE后回送的FCI。

 

表7:选择 PSE的响应报文(FCI)

 

 

表8:选择 ADF 的响应报文(FCI)

 

 

当一个DF成功选中后,终端重复发出选择(SELECT)命令,且P2设置为选择下一个文件的选项及使用相同的部分DF名时,

卡片应该选中与部分DF名称匹配的不同的DF文件(如果这样的DF存在)。在没有应用层命令干扰的情况下重复发出相同的选择(SELECT)命令,
卡片应该可以找到所有满足条件的DF文件,且每个文件不会被找到两次。当所有满足条件的DF都被选择后,再发出同样的选择(SELECT)
命令,应该得到没有文件被选择的结果,卡片应该响应SW1SW2=“6A82”(文件未找到)。

 

参考文档

PBOC3.0规范

 

起草时间

2015-10-22

转载于:https://www.cnblogs.com/sky-heaven/p/5715611.html

你可能感兴趣的文章
JAVA网络编程之Socket
查看>>
翻翻git之---偏向iOS风格的Switch ToggleSwitch
查看>>
Python 全栈开发 -- 开发环境篇
查看>>
python dict type like json
查看>>
颠覆大数据分析之Spark VS分布式共享内存系统
查看>>
深入理解 Android 控件
查看>>
安卓版手机app登录后在后台运行固定时间和被杀死后固定时间重启后重新登录...
查看>>
手把手教你用Hexo+Github 搭建属于自己的博客
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
对象(Object)的遍历方法整理
查看>>
Slog98_项目上线之ArthurSlog个人网站上线5
查看>>
仿知乎拖动广告的实现iOS
查看>>
React Native(Android)调用支付宝
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
GO_GIN_不同文件下html模版渲染
查看>>
package.json
查看>>