ic 卡获取帐号apdu指令_非接触IC卡片APDU指令系统介绍..docx

本文介绍了CPU卡的APDU(Application Protocol Data Unit)指令,包括4种命令格式、APDU命令格式、响应数据格式及常见APDU指令,如SELECT、READ BINARY等,并详细阐述了状态字的含义。
摘要由CSDN通过智能技术生成

CPU卡APDU指令介绍

APDU指令格式

根据7816-4规范,从终端发出的命令和卡片响应的信息必须遵从以下4种格式。

情形1:

命令 :

CLA

INS

P1

P2

00

响应 :

SW1

SW2

情形2:

命令:

CLA

INS

P1

P2

Le

响应:

Le字节的DATA

SW1

SW2

情形3:

命令:

CLA

INS

P1

P2

Lc

DATA

响应 :

SW1

SW2

情形4:

命令:

CLA

INS

P1

P2

Lc

DATA

Le

响应:

Le字节的DATA

SW1

SW2

APDU命令格式

命令由4字节的命令头和命令体组成,见图1。

命令头(必备体)

命令体(可选体)

CLA

INS

P1

P2

Lc

DATA

Le

图1 APDU命令格式

命令头域

命令头定义报文的内容如下表所示:

表1 命令头域

代码

长度(byte)

(Hex)

描述

CLA

1

X0

不带安全报文的命令

X4

带安全报文的命令

INS

1

XX

指令代码

P1

1

XX

参数1

P2

1

XX

参数2

命令体

命令体中各项是可选的。

Lc命令数据域中DATA的长度,该长度不可超过255字节。

Data 命令和响应中的数据域。

Le响应数据域中期望数据的长度。

Le=00,表示需要最大字节数, 该长度不可超过255字节。

APDU响应数据格式

APDU命令的应答由数据和状态字组成,见下图2。

数据

状态字

响应中接收的数据位串

SW1

SW2

图2 APDU响应数据格式

返回数据

返回数据域是可选项。

返回状态字(SW1SW2)

SW1 SW2是卡片执行命令的返回代码,任何命令的返回信息都至少由一个状态字组成。

状态字SW1SW2意义

状态字说明了命令处理的情况,即命令是否被正确执行,如果未被正确执行,原因是什么。状态字由2部分组成:

SW1(status word1):表示命令处理状态;

SW2(status word2):表示命令处理限定。

表2 状态字SW1-SW2

SW1

SW2

Description

90

00

正确执行

61

XX

正确执行

XX表示响应数据长度。可用Get Response命令取回响应数据。(仅用于T=0)

62

81

回送的数据可能错误

62

83

选择文件无效,文件或密钥校验错误

63

CX

X表示还可再试次数

64

00

状态标志未改变

65

81

写EEPROM不成功

67

00

错误的长度

69

00

CLA与线路保护要求不匹配

69

01

无效的状态

69

81

命令与文件结构不相容

69

82

不满足安全状态

69

83

密钥被锁死

69

85

使用条件不满足

69

87

无安全报文

69

88

安全报文数据项不正确

6A

80

数据域参数错误

6A

81

功能不支持或卡中无MF或卡片已锁定

6A

82

文件未找到

6A

83

记录未找到

6A

84

文件无足够空间

6A

86

参数P1 P2错误

6B

00

在达到Le/Lc字节之前文件结束,偏移量错误

6C

XX

Le错误

6E

00

无效的CLA

6F

00

数据无效

93

02

MAC错误

93

03

应用已被锁定

94

01

金额不足

94

03

密钥未找到

94

06

所需的MAC不可用

注意:

当SW1的高半字节为‘9’,且低半字节不为‘0’时,其含义依赖于相关应用。

当SW1的高半字节为‘6’,且低半字节不为‘0’时,其含义与应用无关。

APDU指令

常见APDU指令介绍

以下介绍的指令均为交通行业常见指令,涵盖ED/EP应用和电子现金应用,针对非接触卡片。

通用指令

────SELECT(选择)

────READ BINARY(读二进制)

────READ RECORD(读记录)

────UPDATE BINARY(修改二进制)

────UPDATE RECORD(修改记录)

────GET RESPONSE(取响应)

────GET CHALLENGE(产生随机数)

────EXTERNAL AUTHENTICATION(外部认证)

────INTERNAL AUTHENTICATION(内部认证)

────VERIFY(校验)

────PIN CHANGE/UNBLOCK(个人密码修改/解锁)

────APPLICATION BLOCK(应用锁定)

────APPLICATION UNBLOCK(应用解锁)

────CARD BLOCK(卡片锁定)

电子钱包\电子存折一般交易相关指令

────GET BALANCE(读余额)

────GET TRANSACTION PROVE(取交易认证)

────CHANGE PIN(修改个人密码)

────INITIALIZE FOR LO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值