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. hdu3208 Power of Integer

    /** 题目:H - Power of Integer 链接:https://vjudge.net/contest/152887#problem/H 题意:给出区间[a, b],问你区间[a, b]所 ...

  2. Java bean 是个什么概念?

    Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定.这些约定包括getX ...

  3. MongoDb数据结构详解

    首先,向数据库插入一条bjson数据 首先是定义文档,然后使用admin用户名密码登录,进入test数据库,向test数据库中插入此文档(“表名称和表中的记录”) 插入结果,查看mongoVUE如下图 ...

  4. webpack 3.x loader

    css-loader webpack配置 module:{ rules:[ { test:/\.css$/, use:['style-loader',css-loader] //顺序不能变 } ] } ...

  5. Struts2 主题和模板

    实际本章教程开始之前,让我们看看由http://struts.apache.org给出的几个定义: Term 描述 tag A small piece of code executed from wi ...

  6. [转]Maven2中snapshot快照库的使用

    Post by 铁木箱子 in Java, 技术杂谈 on 2011-10-28 12:12. [转载声明] 转载时必须标注:本文来源于铁木箱子的博客http://www.mzone.cc[原文地址] ...

  7. 浅谈usort、uasort、uksort

    前言:这三个函数都是php提供给开发者自定义的数组排序函数. 1.usort:按值排序,索引重新定义 a.基础案例 //自定义比较的函数 function mysort($a,$b){ if($a = ...

  8. ios - 高效,准确的网络检测

    //网络检测 // 1.创建网络监听者管理者对象 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager share ...

  9. CodeIgniter框架——源码分析之Config.php

    CI框架的配置信息被存储在$config数组中,我们可以添加自己的配置信息或配置文件到$config中: $this->config->load('filename'); //加载配置文件 ...

  10. Android输入法的显示与隐藏

    显示输入法: public void ShowSoftInput(View v) { // v 接受输入的控件 mInputMethodManager = (InputMethodManager) ( ...