转:APDU命令格式


CLA INS P1 P2 Lc Data Le
其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数,0表最大可能长度。
一 命令分类:
COS命令由具体应用分为4种命令报文结构如下:
① 情形1
CLA INS P1 P2 00
② 情形2
CLA INS P1 P2 Le
③ 情形3
CLA INS P1 P2 Lc Data
④ 情形4
CLA INS P1 P2 Lc Data Le
二 响应报文
1) 响应结构
响应数据 响应状态码
Data SW1 SW1
DATA: 返回给用户的数据,即命令的执行结果。
SW1、SW2: 返回命令处理的状态。
三 命令集
1) Read Binary
功能:此命令用于读取二进制文件部分或全部的内容。
CLA 00
INS B0
P1 见参数说明
P2 从文件中读取的第一字节的偏移地址
Le 期望读出数据的长度
2) Update Binary
功能:此命令使用给定的数据来更新二进制文件部分或全部的内容。
CLA 00
INS D6
P1 见参数说明
P2 要修改的第一字节的偏移地址
Lc 后续数据域的长度
Data 修改用的数据
3) Read Record
功能:此命令用于读取记录文件中指定记录的内容。
CLA 00
INS B2
P1 记录号
P2 见参数说明
Le 期望读出数据的长度
4) Update record
功能:此命令使用给定的数据来更新记录文件中指定记录的内容。当所指定的文件非记录文件时,命令将终止。
CLA 00
INS DC
P1 P1= 00 表示当前记录
P1≠ 00 表示指定的记录号
P2 见参数说明
Lc 后续数据域的长度
Data 更新原有记录的新记录
5) Verify PIN
功能:此命令将校验给定的密码的正确性,根据比较的结果修改安全状态,若校验失败次数达到PIN尝试上限,则PIN自动锁定。
CLA 00
INS 20
P1 00
P2
Lc 02 ~ 10
Data 外部输入的个人密码
6) Select File
功能:此命令使用文件名或应用标示符来选择IC卡内DF或EF。
CLA 00
INS A4
P1 00
P2 00
Lc 00 (选择MF文件)/ 02
Data 无 / FID
7) Get Challenge
功能:此命令请求IC卡返回一个用于安全相关过程的随机数。
CLA 00
INS 84
P1 00
P2 00
Le 04
8) Get Response
功能:此命令为T=0协议情形4状态下,用来取卡中返回的数据。
格式:
CLA 00
INS C0
P1 00
P2 00
Le 响应的期望数据最大长度
9) Internal Authenticate
功能:此命令将为外部设备验证卡中的秘密模块的有效性提供数据。
CLA 00
INS 88
P1 00
P2 00 ~ 07 密钥号
Lc 04
Data 外部随机数(4字节)
10) External Authenticate
功能:此命令将验证外部设备中的秘密模块的有效性。
CLA 00
INS 82
P1 00
P2 00 ~ 07 密钥号
Lc 0C
Data 发卡方认证数据
11) Change / Unlock PIN
功能:修改、解锁、安装卡片个人密码。
CLA 00
INS 5E
P1 00 修改卡片个人密码
01 解锁卡片个人密码
02 安(重)装卡片个人密码
P2 密码号
Lc
Data
12) Unlock Key
功能:解锁卡片应用密钥。
CLA 00
INS 5C
P1 01 解锁应用密钥
02 安装卡片应用密钥
P2 密钥号
Lc 无 / 密钥长度
Data 无 / 加密的密钥
13) Create File
功能:此命令创建卡片文件系统。
CLA 00 / 80
INS F2
P1 00 / FTP 文件类型
P2 00 / FAC 文件访问控制条件
Lc 无 / 07
Data
示例:
1 应用选择
(1)选择MF(主文件)
CLA INS P1 P2 Lc Data
00 A4 00 00
P1=00选择主文件
(2)根据应用标识符选择应用
CLA INS P1 P2 Lc Data
00 A4 04 0C 07 A0 00 00 02 47 10 01
P1=04 选择DF(专用文件),此时数据域为DF的文件名(AID应用标识符)
DF包括EF(基本文件)和其他DF
DF1:EF.COM、EF.DG1........................EF.DG16、EF.Sod
2 使用SELECT命令选择基本文件
例:选择机读取区
CLA INS P1 P2 Lc Data
00 A4 02 0C 02 01 01
3读二进制
CLA INS P1 P2 Lc Data
00 B0 05 00 00 //读取文件前256Byte
如果P1的最高位b8为1时,b6和b7位必须为0,b5-b1位表示待读取的基本文件的SFI;这时P2表示要读取数据起始位置在文件中的偏移量。
如果P1的最高位为0时,P1的后7位和P2相连共同组成了一个超过256的整数,表示待读取数据块的起始位置在文件中的偏移量,可以用于超过256Byte文件的读取。
转:APDU命令格式的更多相关文章
- APDU命令与响应格式【转】
本文转载自:http://map.im/apduintroduce 命令格式 APDU命令由命令头和命令体组成: CLA | INS | P1 | P2 | Lc | DATA | Le命令头: CL ...
- PBOC APDU命令解析【转】
转自:http://blog.csdn.net/zuokong/article/details/49335257 版权声明:本文为博主原创文章,未经博主允许不得转载. 应用层发出的命令报文和卡片回送到 ...
- linux命令格式及基础命令(一)
linux命令格式 ~]#COMMAND [选项] [参数] 例如: ~]#ls 不带任何选项和参数 ``` stylus ~]#ls -lh /etc 列出/etc下所有文件和目录,同时要求以格式和 ...
- 【转】scp 命令格式
SCP 命令 \ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解 名称 ...
- 生产WCF客户端类文件的命令格式
生产WCF客户端类文件的命令格式: svcutil.exe net.tcp://127.0.0.1:8732/ChromaMI.Remote.ConfigService/RemoteConfigSer ...
- 命令格式 kill -3 pid
命令格式 kill -3 pid 作用 打印进程号为pid的进程中,每个线程的执行日志 到 nohup文件 中,如果nohup的输出做了重定向,那么输出到重定向以后的文件中. 命令格式 top -Hp ...
- UFI命令格式里SCSI指令
有三种字长命令:6位.10位.12位,一般Windows下用12位. 在UFI 命令格式里SCSI指令用到如下: 指令代码 指令名称 说明 04h Format Unit 格式化存储单元 12h In ...
- Linux - Linux 终端命令格式
Linux 终端命令格式 目标 了解终端命令格式 知道如何查阅终端命令帮助信息 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应 ...
- Linux命令格式及帮助命令详解
昨天看了一个教程,关于Linux命令的,本来以为当是复习随便看看的,结果看了不禁汗颜,这个真挺有学问的,很多东西都是我还不知道的,故此做总结,此文适合于对Linux命令有一定了解但又不是很深入的孩子, ...
随机推荐
- Tree UVA - 548 已知中序遍历和后序遍历,求这颗二叉树。
You are to determine the value of the leaf node in a given binary tree that is the terminal node of ...
- python 开发技巧(3)-- 连接mysql 出现错误 ModuleNotFoundError: No module named 'MySQLdb'
python3中使用mysql报错ModuleNotFoundError: No module named 'MySQLdb' 原因是:在python2.x中用mysqldb,但是在python3.x ...
- 定时器(setTimeout/setInterval)调用带参函数失效解决方法
也许你曾碰到过这样的问题,不管是setInterval()还是setTimeout(),当code参数里放一个带参函数时,定时器都会失效,看下面这个例子: function test(str){ al ...
- Linux Linux程序练习二
/* 编写一个程序读取a.txt文件,将文件内容数字从小到大排序,并将排序结果写入b.txt. */ #include <stdio.h> #include <stdlib.h> ...
- [浪风前端开发]JS获取当前时间戳的方法
由于最近在研究轻交互式web设计,所以整理了下面的东东,仅供分享测试学习交流之用. JavaScript 获取当前时间戳:第一种方法: var timestamp = Date.parse(new D ...
- Python 爬虫实战5 模拟登录淘宝并获取所有订单
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...
- selenium+testng+reportng+ant+jenkins集成日记
1.新建一个项目 2.编写测试脚本 3.配置ant的build.xml脚本 4.集成到jenkins,并运行 1.新建项目 注意jdk的版本要一致 eclipse Window --Prefer ...
- 第11章 Docker Registry 相关问题
11.1 我 docker push 的时候怎么报 authentication required 错误? 因为你没有登录.如果是向 Docker Hub 推送镜像,需要在注册一个用户: https: ...
- mybatis 一次执行多条SQL MySql+Mybatis+Druid之SqlException:sql injection violation, multi-statement not allow
如果用JDBC jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8 ...
- K - Children of the Candy Corn(待续)
K - Children of the Candy Corn Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d ...