以下需求适用于符合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. COJ 0560 4015划分数

    4015 划分数 难度级别:B: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 有n个无区别的物品,将他们划分成不超过m组,求出划分方法数模 ...

  2. 【转】 Spinner的常用技巧

    原文网址:http://blog.csdn.net/wanli_smile/article/details/6410388 用法 1 :以资源方式,静态展示 Spinner 选项 1.     在资源 ...

  3. 抛出异常的区别 throw 和throw ex

    在面试的过程中提到了异常捕获的的几种用法,之前一直使用但是没有仔细留意,调试程序的过程中发现还是有区别的,主要区别在堆栈信息的起始点不同,下边我们通过实例来看这集中不同的抛出异常的方法. 一般我们推荐 ...

  4. Java学习笔记(1)——基本数据类型

    一.进制转换 10^n被称为权  10称为基数   计算机中正数和负数的关系是取反加一, 如: ~3+1=-3 补码边界运算有溢出风险 32位二进制补码最多表示2^32个数, -2G~2G 1,计算机 ...

  5. WingIDE注册破解方法

    WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 1. WingIDE 5下 ...

  6. [深入React] 7.组件生命周期

    生命周期一共分三段:初始化,运行中,销毁.按照顺序: 初始化 getDefaultProps():Object 全局只会调用一次,为当前类生成的默认props,会被父组件传入的同名props覆盖. g ...

  7. (转)iOS5:[UIDevice uniqueIdentifier]的替代方案

    背景: 大多数应用都会用到苹果设备的UDID号,UDID通常有以下两种用途: 1)用于一些统计与分析目的:[第三方统计工具如友盟,广告商如ADMOB等] 2)将UDID作为用户ID来唯一识别用户,省去 ...

  8. hibernate generator class="" id详解

    “assigned”   主键由外部程序负责生成,在   save()   之前指定一个.         “hilo”   通过hi/lo   算法实现的主键生成机制,需要额外的数据库表或字段提供高 ...

  9. HTML5 API's (Application Programming Interfaces)

    New HTML5 API's (Application Programming Interfaces) The most interesting new API's are: HTML Geoloc ...

  10. Android源代码之Gallery专题研究(2)

    引言 上一篇文章已经解说了数据载入过程,接下来我们来看一看数据载入后的处理过程.依照正常的思维逻辑.当数据载入之后,接下来就应该考虑数据的显示逻辑. MVC显示逻辑 大家可能对J2EE的MVC架构比較 ...