以下需求适用于符合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

ISO7816标准IO通讯方面的需求的更多相关文章

  1. 1.Linux标准IO编程

    1.1Linux系统调用和用户编程接口 1.1.1系统调用 用户程序向操作系统提出请求的接口.不同的系统提供的系统调用接口各不相同. 继承UNIX系统调用中最基本和最有用的部分. 调用按照功能分:进程 ...

  2. (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  3. 标准IO的缓冲问题

    在看APU时,第8章进程时, #include <stdio.h> #include <unistd.h> ; char buf[] = "a write to st ...

  4. 文件IO和标准IO的区别【转】

    一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所 ...

  5. 【Java TCP/IP Socket】Java NIO Socket VS 标准IO Socket

    简介 Java  NIO从JDK1.4引入,它提供了与标准IO完全不同的工作方式. NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题.    1. ...

  6. 深究标准IO的缓存

    前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了 ...

  7. [APUE]标准IO库(下)

    一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...

  8. [APUE]标准IO库(上)

    一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...

  9. 标准io与文件io

    A: 代码重复: 语句块1: while(判断) { 语句块2: 语句块1: } 上面可以改写为: while(1) { 语句块1: if(判断) break: 语句块2: } B: 标准IO和文件I ...

随机推荐

  1. HDOJ 1070 Milk(水题,考英文的)

    Problem Description Ignatius drinks milk everyday, now he is in the supermarket and he wants to choo ...

  2. Android笔记(三):View一些值得注意的地方

    Button android:textAllCaps="false" // Button上的英文字符不转成大写 EditText android:maxLines="2& ...

  3. 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看

    http://www.pc841.com/shoujizhishi/39882.html http://news.mydrivers.com/1/359/359443.htm 魅族发布首款千元高性价比 ...

  4. 程序员实用的 MySQL sql 语句

    这儿只讲究实用,  程序员编程时常用到的 MySQL的 sql语句(不包括基本的 select, update, delete 等语句). 1. 添加一个用户build,并赋予所有权限的命令 gran ...

  5. mysql 建立加密连接

    加密连接可提高数据的安全性,但会降低性能.要进行加密连接,必须满足以下要求: user权限表里要有相关的SSL数据列.如果安装的MySQL服务器是4.0.0版的,user权限表已包含相关的SSL数据列 ...

  6. ini文件解析c库(iniparser)

    一.交叉编译ini解析库 1.官方网站http://ndevilla.free.fr/iniparser 下载iniparser-3.1.tar.gz 2.解压 tar -zxvf iniparser ...

  7. Jquery-uploadify多文件上传插件使用介绍

    Jquery-uploadify多文件上传插件使用起来非常的给力,在此记录一下使用方法. query-uploadify插件的属性设置 <script src="JS/jquery.m ...

  8. (转)js 正则表达式之test函数讲解

    该方法的返回值是布尔值,通过该值可以匹配字符串中是否存在于正则表达式相匹配的结果,如果有匹配内容,返回ture,如果没有匹配内容返回false,该方法常用于判断用户输入数据的合法性,比如检验Email ...

  9. 如何获取外网Ip呢, 终于找到方法了

    临时更换网址:http://20140507.ip138.com/ic.asp 这个网址能同时获取ip和城市名字 上面的网址如何来的呢,其实很简单,随便打开一个获取Ip的网站,比如http://www ...

  10. FeatureClass对象

    概述: 在讲述FeatureClass对象之前,首先说明与FeatureClass对象相关的对象: Table对象,是不具有空间信息的二维表,是一张仅能在ArcMap的Table Of Content ...