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命令格式的更多相关文章

  1. APDU命令与响应格式【转】

    本文转载自:http://map.im/apduintroduce 命令格式 APDU命令由命令头和命令体组成: CLA | INS | P1 | P2 | Lc | DATA | Le命令头: CL ...

  2. PBOC APDU命令解析【转】

    转自:http://blog.csdn.net/zuokong/article/details/49335257 版权声明:本文为博主原创文章,未经博主允许不得转载. 应用层发出的命令报文和卡片回送到 ...

  3. linux命令格式及基础命令(一)

    linux命令格式 ~]#COMMAND [选项] [参数] 例如: ~]#ls 不带任何选项和参数 ``` stylus ~]#ls -lh /etc 列出/etc下所有文件和目录,同时要求以格式和 ...

  4. 【转】scp 命令格式

    SCP 命令   \ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解   名称 ...

  5. 生产WCF客户端类文件的命令格式

    生产WCF客户端类文件的命令格式: svcutil.exe net.tcp://127.0.0.1:8732/ChromaMI.Remote.ConfigService/RemoteConfigSer ...

  6. 命令格式 kill -3 pid

    命令格式 kill -3 pid 作用 打印进程号为pid的进程中,每个线程的执行日志 到 nohup文件 中,如果nohup的输出做了重定向,那么输出到重定向以后的文件中. 命令格式 top -Hp ...

  7. UFI命令格式里SCSI指令

    有三种字长命令:6位.10位.12位,一般Windows下用12位. 在UFI 命令格式里SCSI指令用到如下: 指令代码 指令名称 说明 04h Format Unit 格式化存储单元 12h In ...

  8. Linux - Linux 终端命令格式

    Linux 终端命令格式 目标 了解终端命令格式 知道如何查阅终端命令帮助信息 01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应 ...

  9. Linux命令格式及帮助命令详解

    昨天看了一个教程,关于Linux命令的,本来以为当是复习随便看看的,结果看了不禁汗颜,这个真挺有学问的,很多东西都是我还不知道的,故此做总结,此文适合于对Linux命令有一定了解但又不是很深入的孩子, ...

随机推荐

  1. springboot开启事务管理

    spring中开启事务管理需要在xml配置文件中配置,springboot中采取java config的配置方式. 核心是@EnableTransactionManager注解,该注解即为开启事务管理 ...

  2. 椭圆曲线ECC基本概念

    椭圆曲线的曲线方程是以下形式的三次方程: y2+axy+by=x3+cx2+dx+e a,b,c,d,e是满足某些简单条件的实数.定义中包含一个称为无穷点的元素,记为O 如果其上的3个点位于同一直线上 ...

  3. 简单介绍一下vue2.0

    Vue Vue是用于构建用户界面的渐进框架.作者尤雨熙特别强调它与其他的框架不同,Vue是渐进式的框架,可以逐步采用,不必一下就通过框架去重构项目. 另外Vue的核心库只专注于视图层,这样就更容易与其 ...

  4. java -- 路径中包含空格怎么处理

    @.使用toURI()方法 String rootPath = this.getClass().getClassLoader().getResource(".").toURI(). ...

  5. 检测进程不存在自动重启shell脚本

    #!/bin/bash WORKDIR="/usr/local/gse/gseagent" [[ -d $WORKDIR ]] && { if ! ps aux|g ...

  6. C字符串复制

    void mystrcpy(char *from, char *to) { for(; *from != '\0'; from++, to++) { *to = *from; } *to = '\0' ...

  7. 机器学习之猫狗大战,解决image RGB values must be in the 0..1 range.

    猫狗大战是比较经典的机器学习案例,前几天体验了一番,来记录一下 1.图片准备 首先是准备训练的图片 链接:https://pan.baidu.com/s/1ht1HIuw 密码:aw9s 2.开始训练 ...

  8. redis 集群出现的错误

    1 解决方法: 不用 Jedis jed =new jedis("192.168.56.101"); jed.set(key,value); 用 Set<HostAndPor ...

  9. 【转】10 个MySQL数据库备份教程推荐

    10 个MySQL数据库备份教程推荐 MySQL是动态网站开发中最著名的开源数据库系统.如果你在网站中使用了MySQL,那么你应该定期备份你的数据以防止它丢失. 本文将介绍自动或手动备份MySQL数据 ...

  10. [Spring Data MongoDB]学习笔记--注册一个Mongo实例

    1. 通过Java based bean metadata @Configuration public class AppConfig { public @Bean Mongo mongo() thr ...