ISO7816标准IO通讯方面的需求
以下需求适用于符合ISO7816的Reader的测试:换句话说只要Reader能通过以下指令,就基本符合了ISO7816标准,具体需求为:
1 概述
本文档主要描述CDCAS系统中用到的CA证书的格式及相关约定。
2 证书格式
2.1 SW1、SW2返回值含义:
值(Hex) |
说明 |
6E 00 |
CLA错误 |
6D 00 |
INS错误 |
67 00 |
数据长度错误 |
69 88 |
数据内容有错误 |
6A 00 |
P1/P2错误 |
90 00 |
数据正确 |
2.2 各项输入指令、输入数据,输出数据及期望的正确返回
2.2.1 ATR测试
由于指令修改,智能卡中ATR所带版本信息增加。测试方法为,向输入Reset指令,卡返回ATR如下:
版本 |
ATR |
SpecIC2.0.00 |
0x3B 7A 18 00 00 20 00 53 70 65 63 43 61 72 64 |
SpecIC2.0.01 |
0x3B 7A 18 00 00 20 01 53 70 65 63 43 61 72 64 |
2.2.2 INS测试
a) 向卡输入指令0x00 20 00 00 04,过2etus卡返回INS(0x20),之后向卡输入数据1,2,3,4,卡验证输入数据正确并返回0x90 00。具体输入输出如表1所示:
表1
1.输入指令 |
CLA |
0x00 |
INS |
0x20 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Lc |
0x04 |
|
2.等待时间 |
2etus |
|
3.返回ACK |
0x20 |
|
4.输入数据 |
1,2,3,4 |
|
5.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
b) 向卡输入指令0x00 22 00 00 04,过9600etus卡返回INS(0x22),之后向卡输入数据1,2,3,4,卡验证输入数据正确并返回0x90 00。具体输入输出如表2所示:I
表 2
1.输入指令 |
CLA |
0x00 |
INS |
0x22 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Lc |
0x04 |
|
2.等待时间 |
9600etus |
|
3.返回ACK |
0x22 |
|
4.输入数据 |
1,2,3,4 |
|
5.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
2.2.3 输入输出测试
a) 向卡输入指令0x00 30 00 00 FF,卡返回INS(0x30),之后向卡输入数据1,2,3,……255,卡验证输入数据正确并返回0x90 00。具体输入输出如表3所示:
表 3
1.输入指令 |
CLA |
0x00 |
INS |
0x30 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Lc |
0xFF |
|
2.返回ACK |
0x30 |
|
3.输入数据 |
1,2,3……255 |
|
4.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
b) 向卡输入指令0x00 32 00 00 00,卡返回INS(0x32),之后卡输出数据0,1,2,3,……255,输出数据完成后卡返回0x90 00。具体输入输出如表4所示:
表 4
1.输入指令 |
CLA |
0x00 |
INS |
0x32 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0x00 |
|
2.返回ACK |
0x32 |
|
3.输出数据 |
0,1,2……255 |
|
4.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
c) SpecIC2.0.00版本支持
向卡输入指令0x00 34 00 00 FF,卡返回INS(0x34),之后向卡输入数据1,2,3,……255,卡验证正确后输出数据1,2,3,4,输出数据完成后卡返回0x90 00。具体输入输出如表5-1所示:
表5-1
1.输入指令 |
CLA |
0x00 |
INS |
0x34 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0xFF |
|
2.返回ACK |
0x34 |
|
3.输入数据 |
1,2,3……255 |
|
4.返回 |
0x61,0x 04 |
|
5.输入指令 |
CLA |
0x00 |
INS |
0xC0 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0x04 |
|
6.返回ACK |
0xC0 |
|
7.输出数据 |
1,2,3,4 |
|
8.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
d) SpecIC2.0.01版本支持
向卡输入指令0x00 34 00 00 FF,卡返回INS(0x34),之后向卡输入数据1,2,3,……255,卡验证正确后输出数据1,2,3,……255,输出数据完成后卡返回0x90 00。具体输入输出如表5-2所示:
表5-2
1.输入指令 |
CLA |
0x00 |
INS |
0x34 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0xFF |
|
2.返回ACK |
0x34 |
|
3.输入数据 |
1,2,3……255 |
|
4.返回 |
0x61,0x FF |
|
5.输入指令 |
CLA |
0x00 |
INS |
0xC0 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0xFF |
|
6.返回ACK |
0xC0 |
|
7.输出数据 |
1,2,3……255 |
|
8.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
2.2.4 工作等待时间测试
a) 向卡输入指令0x00 40 00 00 04,卡返回INS(0x40),之后向卡输入数据1,2,3,4,过4秒后卡返回0x90 00,在4秒期间,卡每隔9300etus输出0x60,具体输入输出如表6所示:
表 6
1.输入指令 |
CLA |
0x00 |
INS |
0x40 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Lc |
0x04 |
|
2.返回ACK |
0x40 |
|
3.输入数据 |
1,2,3,4 |
|
4.等待时间 |
4秒,期间每隔>9300etus卡输出0x60 |
|
5.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
b) 向卡输入指令0x00 42 00 00 04,4秒后卡返回INS(0x42),之后卡输出数据1,2,3,4。在4秒期间,卡每隔9300etus输出0x60,具体输入输出如表7所示:
表 7
1.输入指令 |
CLA |
0x00 |
INS |
0x42 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0x04 |
|
2等待时间 |
4秒,其间每隔>9300etus卡输出0x60 |
|
3.返回ACK |
0x42 |
|
4.输出数据 |
1,2,3,4 |
|
5.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
2.2.5 读取SerialNumber
表8
1.输入指令 |
CLA |
0x00 |
INS |
0x50 |
|
P1 |
0x00 |
|
P2 |
0x00 |
|
Le |
0x08 |
|
2.返回ACK |
0x50 |
|
3.输出数据 |
8个Byte长度SerialNumber |
|
4.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
2.2.6 标准pps改变速率
PPS卡可以设置通信速率,通过该卡用户能够验证机顶盒等读卡器设备能否在不同的速率下和智能卡进行正确的通信。PPS协议具体可参考ISO_IEC_7816-3第八章。
根据公式: 我们可以计算每个etu消耗的时间,
具体输入输出如表9所示:
表9
1.Reset |
设置速率前必须Reset |
|
2.卡返回 |
0x3B 7A 18 00 00 20 00 53 70 65 63 43 61 72 64 |
其中第三个Byte 0x18,表示FI=1,DI=8,查图1可得:Fi=372,Di=12。根据计算etu的公式可以计算出传输速率将是原来的12倍。 |
2.读卡器输入 |
0xFF 10 18 F7 |
|
3.卡返回 |
0xFF 10 18 F7 |
设置速率完成,下面按设置的速率进行通信 |
图1
2.2.7 设置速率
使用指令0x88可以修改智能卡与读卡设备之间的通信速率,目前支持三种速率的设置:1、6、12,具体输入输出如表10所示:
表10
1.输入指令 |
CLA |
0x00 |
INS |
0x88 |
|
P1 |
0x00 |
|
P2 |
0x01或0x06或0x0C |
|
Le |
0x00 |
|
2.返回 |
SW1 |
0x90 |
SW2 |
0x00 |
最新文章
- Linux shell redirect
- 推薦使用 Microsoft Anti-Cross Site Scripting Library v3.1
- js-函数eval
- Android笔记:限定符
- 《DSP using MATLAB》示例Example4.11
- gotoTop返回顶部 JS
- Github排行榜
- 关于RF 315MHz
- PHP开发规范
- (转载)js----对象直接量
- 关于session_start()这个问题
- 产品经理学Python:逻辑判断与运算符
- [ Java面试题 ]基础篇之一
- MHA高可用
- EBS中 EXCEL 格式报表输出的公用API
- 阿里云安装配置Ghost
- Unity3D实践系列07,组件的启用或禁用开关,物体的的可见或不可见开关,以及相应事件
- 架构:Screaming Architecture(转载)
- java将doc文件转换为pdf文件的三种方法
- node http模块搭建简单的服务和客户端