智能卡APDU的命令格式及其分析

合集下载

apdu结构

apdu结构

APDU(Application Protocol Data Unit)是应用协议数据单元,用于在智能卡和智能卡应用之间传输数据。

APDU 是命令/响应协议的数据单元,包含命令、数据和状态信息。

APDU 的结构包括:
命令字节:用于标识APDU 命令的类型,如CLA(Class)字节。

长度字节:用于表示APDU 的长度,包括命令字节和数据字节的总长度。

数据字节:包含实际要传输的数据,可以是参数或命令中的数据。

状态字节:用于表示响应的状态信息,例如成功或失败状态。

APDU 的命令/响应结构包括:
命令格式:包含APDU 命令字节和数据字节,用于向智能卡发送指令和数据。

响应格式:包含APDU 状态字节,用于返回响应状态信息。

APDU 的数据域可以有不同的长度,根据实际情况而定。

如果数据域为空,则APDU 只包括头标。

根据应用协议的规定,不同的APDU 命令有不同的命令码和参数格式。

以上内容仅供参考,如需更准确全面的信息,可以咨询银行智能卡相关技术领域的专业人员或查阅相关技术手册。

智能卡APDU的命令格式及其分析

智能卡APDU的命令格式及其分析

智能卡APDU命令格式及分析数据结构APDU命令CLA INS P1 P2 Lc Data Le其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le 为希望响应时回答的数据字节数的最大可能长度。

一命令分类:COS命令由具体应用分为4种命令报文结构如下:① 情形1CLA INS P1 P2 00② 情形2CLA INS P1 P2 Le③ 情形3CLA INS P1 P2 Lc Data④ 情形4CLA INS P1 P2 Lc Data Le二响应报文1)响应结构响应数据响应状态码Data SW1 SW1DATA:返回给用户的数据,即命令的执行结果。

SW1、SW2:返回命令处理的状态。

三命令集1) Read Binary功能:此命令用于读取二进制文件部分或全部的内容。

CLA 00INS B0P1 见参数说明P2 从文件中读取的第一字节的偏移地址Le 期望读出数据的长度2) Update Binary功能:此命令使用给定的数据来更新二进制文件部分或全部的内容。

CLA 00INS D6P1 见参数说明P2 要修改的第一字节的偏移地址Lc 后续数据域的长度Data 修改用的数据3) Read Record功能:此命令用于读取记录文件中指定记录的内容。

CLA 00INS B2P1 记录号P2 见参数说明Le 期望读出数据的长度4) Update record功能:此命令使用给定的数据来更新记录文件中指定记录的内容。

当所指定的文件非记录文件时,命令将终止。

CLA 00INS DCP1 P1= 00 表示当前记录P1≠ 00 表示指定的记录号P2 见参数说明Lc 后续数据域的长度Data 更新原有记录的新记录5) Verify PIN功能:此命令将校验给定的密码的正确性,根据比较的结果修改安全状态,若校验失败次数达到PIN尝试上限,则PIN自动锁定。

CLA 00INS 20P1 00P2Lc 02 ~ 10Data 外部输入的个人密码6) Select File功能:此命令使用文件名或应用标示符来选择IC卡内DF或EF。

非接触IC卡片APDU指令系统介绍

非接触IC卡片APDU指令系统介绍

APDU指‎令介绍1. APDU指‎令格式根据781‎6-4规范,从终端发出‎的命令和卡‎片响应的信‎息必须遵从‎以下4种格‎式。

情形1:命令:响应:情形2:命令:响应:情形3:命令:响应:情形4:命令:响应:1.1 APDU命‎令格式1.1.1 命令头域命令头定义‎报文的内容‎如下表所示‎:表1命令头域1.1.2 命令体命令体中各‎项是可选的‎。

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

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

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

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

1.2 APDU响‎应数据格式‎APDU命‎令1.2.1 返回数据返回数据域‎是可选项。

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

1.3 状态字SW‎1SW2意‎义状态字说明‎了命令处理‎的情况,即命令是否‎被正确执行‎,如果未被正‎确执行,原因是什么‎。

状态字由2‎部分组成:SW1(statu‎s word1‎):表示命令处‎理状态;SW2(statu‎s word2‎):表示命令处‎理限定。

表2 状态字SW‎1-SW2当SW1的‎高半字节为‎‘9’,且低半字节‎不为‘0’时,其含义依赖‎于相关应用‎。

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

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

●通用指令────SELEC‎T(选择)────READ‎BINAR‎Y(读二进制)────READ‎RECOR‎D(读记录)────UPDAT‎E BINAR‎Y(修改二进制‎)────UPDAT‎E RECOR‎D(修改记录)────GET‎RESPO‎N SE(取响应)────GET‎CHALL‎E NGE(产生随机数‎)────EXTER‎N AL AUTHE‎N TICA‎T ION(外部认证)────INTER‎N AL AUTHE‎N TICA‎T ION(内部认证)────VERIF‎Y(校验)────PIN‎CHANG‎E/UNBLO‎C K(个人密码修‎改/解锁)────APPLI‎C ATIO‎N BLOCK‎(应用锁定)────APPLI‎C ATIO‎N UNBLO‎C K(应用解锁)────CARD‎BLOCK‎(卡片锁定)●电子钱包\电子存折一‎般交易相关‎指令────GET BALAN‎CE(读余额)────GET TRANS‎A CTIO‎N PROVE‎(取交易认证‎)────CHANG‎E PIN(修改个人密‎码)────INITI‎A LIZE‎FOR LOAD(圈存初始化‎)────CREDI‎T FOR LOAD(圈存)────INITI‎A LIZE‎FOR PURCH‎A SE(消费初始化‎)────INITI‎A LIZE‎FOR CASH WITHD‎R AW(取现初始化‎)────DEBIT‎FOR PURCH‎A SE/CASH WITHD‎RA W(消费/取现)────INITI‎A LIZE‎FOR UNLOA‎D(圈提初始化‎,仅用于电子‎存折)────DEBIT‎FOR UNLOA‎D(圈提,仅用于电子‎存折)────INITI‎A LIZE‎FOR UPDAT‎E(修改透支限‎额初始化,仅用于电子‎存折)────UPDAT‎E OVERD‎R AW LIMIT‎(修改透支限‎额,仅用于电子‎存折)────APPEN‎D RECOR‎D(增加记录)●复合应用模‎式专用指令‎────INITI‎A LIZE‎FOR CAPP PURCH‎A SE(复合应用消‎费初始化)────UPDAT‎E CAPP DA TA CACHE‎(更新复合应‎用数据缓存‎)────DEBIT‎FOR CAPP PURCH‎A SE(复合应用消‎费)●电子现金专‎用指令────GENER‎A TE AC(生成应用密‎文)────GET DA TA(取数据)────PUT DA TA(设置数据)────GET PROCE‎S SING‎OPTIO‎N S(获取处理选‎项)通用指令是‎电子钱包、电子存折、电子现金都‎支持的,但是针对不‎同的应用,某些指令的‎具体参数细‎节可能略有‎差异,可参照相关‎规范。

智能卡APDU的命令格式及其分析

智能卡APDU的命令格式及其分析

APDU命令CLA INS P1 P2 Lc Data Le其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数的最大可能长度。

一命令分类:COS命令由具体应用分为4种命令报文结构如下:① 情形1CLA INS P1 P2 00② 情形2CLA INS P1 P2 Le③ 情形3CLA INS P1 P2 Lc Data④ 情形4CLA INS P1 P2 Lc Data Le 二响应报文1)响应结构响应数据响应状态码Data SW1 SW1DATA:返回给用户的数据,即命令的执行结果。

SW1、SW2:返回命令处理的状态。

三命令集1) Read Binary功能:此命令用于读取二进制文件部分或全部的内容。

CLA 00INS B0P1 见参数说明P2 从文件中读取的第一字节的偏移地址Le 期望读出数据的长度2) Update Binary功能:此命令使用给定的数据来更新二进制文件部分或全部的内容。

CLA 00INS D6P1 见参数说明P2 要修改的第一字节的偏移地址Lc 后续数据域的长度Data 修改用的数据3) Read Record功能:此命令用于读取记录文件中指定记录的内容。

CLA 00INS B2P1 记录号P2 见参数说明Le 期望读出数据的长度4) Update record功能:此命令使用给定的数据来更新记录文件中指定记录的内容。

当所指定的文件非记录文件时,命令将终止。

CLA 00INS DCP1 P1= 00 表示当前记录P1≠ 00 表示指定的记录号P2 见参数说明Lc 后续数据域的长度Data 更新原有记录的新记录5) Verify PIN功能:此命令将校验给定的密码的正确性,根据比较的结果修改安全状态,若校验失败次数达到PIN尝试上限,则PIN自动锁定。

CLA 00INS 20P2Lc 02 ~ 10Data 外部输入的个人密码6) Select File功能:此命令使用文件名或应用标示符来选择IC卡内DF或EF。

APDU命令整理解析

APDU命令整理解析

1.APDU命令集命令格式:1.READ BINARY的命令报文:如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位) P1的b5至b1是短EF标识符并且P2是在从文件开始的数据单元中被读的第1个字节的偏移。

如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被读的第1个字节的偏移。

如果Le字段仅包含若干“0” 则对于短的长度在不超过256的范围内或者对扩充长度在不超过65536的范围内所有字节(直到文件结束为止)应被读出。

READ BINARY的响应报文:如果在P1中b8=1,则P1的b7和b6显域0(RFU若干位) P1的b5至b1是短EF标识符并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。

如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第1个字节的偏移。

WRITE BINARY的响应报文:3.UPDATA BINARY命令报文:说明:如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位), P1的b5至b1是短EF标识符,并且P2是在从文件开始的数据单元中被更新的第1个字节的偏移。

如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被更新的第1个字节的偏移。

UPDATE BINARY的响应报文:说明:如果在P1中b8=1,则P1的b7和b6显示0(RFU若干位), P1的b5至b1是短EF标识符,并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。

如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第1个字节的偏移。

如果数据字段呈现,它编码不被擦除的第1个数据单元的偏移,该偏移应大于在P1 —P2中编码的一个偏移,当数据字段为空时,该命令擦除到该文件的结束端。

WRITE RECORD的响应报文:7.APPEND RECORD命令报文:UPDATE RECORD的响应报文:9.GET DATA命令报文:PUT DATA的响应报文:12.VERIFY命令报文:说明:P1=‘00’表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据字段中提供。

APDU经验

APDU经验
3、为进一步的理解指令脚本打下良好基础
© 2010 北京飞天诚信科技有限公司
目录
APDU相关概念介绍
APDU指令示例分析
© 2010 北京飞天诚信科技有限公司
常用概念
英文定义: 中文定义: Application Protocol data unit 应用协议数据单元
在智能卡应用环境中,APDU是基于读卡器和卡之间的通讯单 元,指令规范定义标准:ISO/IEC 7816-4 TPDU:传输协议数据单元,也多用于IC卡中。 PDU:非具体概念,多用于分层结构模型中,如OSI模型。 主要指对等层次之间传递的数据单位。 如物理层的PDU是bit,数据链路层的PDU是frame等。
© 2010 北京飞天诚信科技有限公司
特殊的响应
命令APDU 选择文件: 00 A4 00 00 02 3F 00(选择MF)
响应APDU 6F 10 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 90 00
为什么没有Le却存在响应内容?
© 2010 北京飞天诚信科技有限公司
命令APDU: 取随机数(Get Challenge): 00 84 00 00 08 CLA INS P1 P2
பைடு நூலகம்
Le
响应APDU:
SW1 54 F6 F0 93 7B 9A F1 AC 90 00
8字节随机数内容
SW2
© 2010 北京飞天诚信科技有限公司
复杂的响应
命令APDU 取公钥:80 E6 2A 02 00
工欲善其事,必先利其器
之APDU交流篇
王强强
Copyright 2010 Feitian . Reproduction is forbidden unless authorized. All rights reserved.

APDU指令集合

APDU指令集合

1GP APDU 指令参考(GlobalPlatform 第九章)1.1State ReturnedSw1 sw2 meaning62 00 Logical Channel already closed62 83 Card Life Cycle State is CARD_LOCKED63 10 More data available64 00 No specific diagnosis65 81 Memory failure67 00 Wrong length in Lc68 81 Logical channel not supported or is not active68 82 Secure messaging not supported69 82 Security status not satisfied69 85 Conditions of use not satisfied6A 80 Incorrect values in command data6A 81 Function not supported e.g. card Life Cycle State is CARD_LOCKED6A 82 Selected Application / file not found6A 84 Not enough memory space6A 86 Incorrect P1 P26A 88 Referenced data not found6D 00 Invalid instruction6E 00 Invalid class94 84 Algorithm not supported1.2基本指令command CLA INFDelete command (80\84) E4 (9.2)GET DATA Command (00\80\84) CA (9.3)GET STATUS Command (80\84)F2 (9.4)INSTALL Command (80\84)E6 (9.5)LOAD Command (80\84)E8 (9.6)MANAGE CHANNEL Command 00 70 (9.7)PUT KEY Command (80\84)D8 (9.8)SELECT Command 00 A4 (9.9)SET STATUS Command (80\84)F0 (9.10)STORE DATA Command (80\84)E2 (9.11)2PBOC 指令参考(中国金融集成电路1、2) 2.1基本指令command CLA INF 说明APPLICATION BLOCK 84 1E 使当前选择的应用失效(6.2.3)APPLICATION UNBLOCK 84 18 用于恢复当前应用(6.2.4)CARD BLOCK 84 16 使卡中所有应用永久失效(6.2.5)EXTERNAL AUTHENTICATION 00 82 要求IC卡中的应用验证密码(6.2.6) GET CHALLENGE 00 84 请求一个用于安全相关过程的随机数(6.2.7)GET RESPONSE 00 C0 提供了一种从卡片向接口设备传送APDU的传输方法 (6.2.8) INTERNAL AUTHENTICA TION 00 88 提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据认证的功能(6.2.9)PIN UNBLOCK 84 24 为发卡方提供了解锁个人密码的功能(6.2.10)READ BINARY (00\04)B0 用于读取二进制文件的内容(6.2.11) READ RECORD (00\04)B2 用于读取记录文件的内容(6.2.12)SELECT 00 A4 通过文件名或AID来选择IC卡中的PSE、DDF或ADF(6.2.13) UPDATE BINARY (00\04)D6 报文使用命令APDU中给定的数据修改EF文件中已有的数据(6.2.14) UPDATE RECORD (00\04)DC 报文用命令APDU中给定的数据更改指定的记录(6.2.15)VERIFY 00 20 用于校验命令数据域中的个人密码的正确性(6.2.16)(1)CHANGE PIN(修改个人密码) 80 5E 01 00 (5.2.2)CREDIT FOR LOAD(圈存) 80 52 00 00 (5.2.3)DEBIT FOR PURCHASE/CASH WITHDRAW(消费/取现) 80 54 01 00 (5.2.4)DEBIT FOR UNLOAD(圈提) 80 54 03 00 (5.2.5)GET BALANCE(读余额) 80 5C 00 0x (5.2.6)GET TRANSACTION PROVE(取交易认证) 80 5A 00 xx (5.2.7)INITIALIZE FOR CASH WITHDRAW(取现初始化) 80 50 02 01 (5.2.8)INITIALIZE FOR LOAD(圈存初始化) 80 50 00 0x (5.2.9)INITIALIZE FOR PURCHASE(消费初始化) 80 50 01 0x (5.2.10)INITIALIZE FOR UNLOAD(圈提初始化) 80 50 05 01 (5.2.11)INITIALIZE FOR UPDATE(修改初始化) 80 50 04 01 (5.2.12)RELOAD PIN(重装个人密码) 80 5E 00 00 (5.2.13)UPDATE OVERDRAW LIMIT(修改透支限额) 80 58 00 00 (5.2.14)(2) 2.2State ReturnedSw1 sw2 meaning 性质61 xx 正常处理62 00 无信息提供警告62 81 回送数据可能出错警告62 82 文件长度<Le62 83 选择文件无效警告63 00 认证失败警告63 cx 使用内部重试程序更新成功警告64 00 状态位未变错误65 81 内存错误错误67 00 Lc长度错误错误68 82 不支持安全报文错误69 00 不能处理69 01 命令不接受(无效状态) 错误69 81 命令与文件结构不相容错误69 82 不满足安全状态错误69 83 认证方法锁定错误69 84 引用数据无效错误69 85 使用条件不满足错误69 86 不满足命令执行的条件(非当前EF) 错误69 87 安全报文数据项丢失错误69 88 安全报文数据项不正确错误6A 80 数据域参数不正确错误6A 81 不支持此功能警告6A 82 文件未找到错误6A 83 未找到记录错误6A 84 文件中存储空间不够错误6A 86 参数P1 P2不正确错误6A 88 未找到引用数据错误6B 00 参数错误(偏移地址超出了EF) 错误6C xx 长度错误(Le不正确,xx表示实际长度) 错误6D 00 INS不支持或错误错误6E 00 CLA不支持或错误错误6F 00 数据无效错误93 02 MAC无效错误93 03 应用永久锁定警告\错误(block\unblock)94 01 金额不足错误94 03 密钥索引不支持错误94 06 所需MAC不可用错误37816 指令参考(7816-4)3.1基本指令command CLA INF 说明READ BINARY 00 B0 (6.1)WRITE BINARY command 00 D0 (6.2)UPDATE BINARY command 00 D6 (6.3)ERASE BINARY command 00 0E (6.4)READ RECORD(S) command 00 B2 (6.5)WRITE RECORD command 00 D2 (6.6)APPEND RECORD 00 E2 (6.7)UPDATE RECORD command 00 DC (6.8)GET DATA command 00 CA (6.9)PUT DATA command 00 DA (6.10)SELECT FILE command 00 A4 (6.11)VERIFY command 00 20 (6.12)INTERNAL AUTHENTICA TE command 00 88 (6.13)EXTERNAL AUTHENTICATE command 00 B2 (6.14)GET CHALLENGE command 00 B4 (6.15)MANAGE CHANNEL command 00 70 (6.16)3.2State ReturnedSw1 sw2 meaning62 00 No information is given62 81 Part of returned data may be corrupted62 82 End of file reached befeore reading Le bytes62 83 Selected file invalidated62 84 FCI not formatted according to 5.1.562 CX Counter (successful writing, but after using an internal retry routine. 'X'!='0'indicates the number of retries: 'X'='0' means that no counter is provided)63 00 No information given (verification failed)63 CX Counter (successful storing, but after using an internal retry routine, 'X'!='0'indicates the number of retries. 'X'='0' means that no counter is provided65 81 Memory failure (unsuccessful writing)67 00 Wrong length (wrong Le field)69 81 Command incompatible with file structure69 82 Security status not satisfied69 83 Authentication method blocked69 84 Referenced data invalidated69 85 Conditions of use not satisfied69 86 Command not allowed (no current EF)6A 80 Incorrect parameters in the data field6A 81 Function not supported6A 82 File not found6A 83 Record not found6A 84 Not enough memory space in the file6A 85 Lc inconsistent with TLV structure6A 86 Incorrect parameters P1-P26a 87 Lc inconsistent with P1-P26A 88 Referenced data (data objects) not found6B 00 Wrong parameters (offset outside the EF)6C XX Wrong length (wrong Le field: 'XX' indicates the exact length)。

apdu select指令

apdu select指令

apdu select指令APDU(Application Protocol Data Unit)是应用层协议数据单元的缩写,它是指在智能卡与读卡器之间进行通信时所使用的数据单元。

而在智能卡与读卡器之间的通信中,APDU select指令是一种重要的指令,用于选择特定的应用或文件。

APDU select指令用于在智能卡上选择应用或文件,其格式如下:CLA INS P1 P2 Lc Data Le其中,CLA(Class)字段用于指示指令的类型;INS(Instruction)字段用于指示具体的操作;P1(Parameter 1)和P2(Parameter 2)字段用于传递额外的参数;Lc(Length of command)字段用于指示数据域的长度;Data字段用于传递数据;Le(Length of expected data)字段用于指示期望的返回数据的长度。

APDU select指令的INS字段为0xA4,表示选择操作。

而具体选择的应用或文件则通过P1和P2字段来指定。

例如,选择一个应用时,P1和P2字段可以指定应用的AID(Application Identifier);选择一个文件时,P1和P2字段可以指定文件的标识符。

选择应用的APDU select指令示例为:00 A4 04 00 Lc Data其中,00表示标准指令;A4为INS字段,表示选择操作;04和00分别为P1和P2字段,用于指定选择的应用;Lc为Data字段的长度;Data为应用的AID。

选择文件的APDU select指令示例为:00 A4 00 00 Lc Data其中,00表示标准指令;A4为INS字段,表示选择操作;00和00分别为P1和P2字段,用于指定选择的文件;Lc为Data字段的长度;Data为文件的标识符。

在使用APDU select指令时,需要注意以下几点:1. 应用或文件的AID或标识符需要提前了解或获取,以便正确指定选择的对象;2. 如果选择的应用或文件不存在,则会返回相应的错误码;3. 如果选择的应用或文件存在多个匹配项,则通常选择第一个匹配项;4. 在选择应用或文件之前,通常需要进行卡片复位操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能卡APDU命令格式及分析
数据结构
APDU命令
CLA INS P1 P2 Lc Data Le
其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le 为希望响应时回答的数据字节数的最大可能长度。

一命令分类:
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.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文件的读取。

相关文档
最新文档