首页> 中国专利> 主机对多厂商芯片设备数据交换协议进行动态转换的方法

主机对多厂商芯片设备数据交换协议进行动态转换的方法

摘要

本发明涉及一种主机对多厂商芯片设备数据交换协议进行动态转换的方法,属于计算机技术领域。先为芯片设备配置数据交换协议规则,并形成规则库,主机中的数据交换协议转换模块从主机中的驱动模块获取当前插入芯片设备的厂商代码等信息并根据此信息检索到与上述芯片设备数据交换协议相匹配的数据交换协议规则,并根据此规则对来自主机中的应用模块的数据交互请求指令进行组包后经由主机中的驱动模块发给上述芯片设备,并再根据此规则从经由主机中的驱动模块返回的芯片设备的处理数据中获取相关信息并返回给主机中的应用模块。本发明的优点是掌握了数据交换协议的配置方法后,对新的芯片设备数据交换协议的支持将更快捷、更可靠。

著录项

  • 公开/公告号CN101324918A

    专利类型发明专利

  • 公开/公告日2008-12-17

    原文格式PDF

  • 申请/专利权人 北京信城通数码科技有限公司;

    申请/专利号CN200810117171.7

  • 发明设计人 张明德;张文翠;杨文胜;

    申请日2008-07-25

  • 分类号G06K7/00(20060101);

  • 代理机构北京清亦华知识产权代理事务所;

  • 代理人罗文群

  • 地址 100070 北京市丰台区南四环西路188号总部基地七区15号楼

  • 入库时间 2023-12-17 21:10:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-02-03

    授权

    授权

  • 2009-02-11

    实质审查的生效

    实质审查的生效

  • 2008-12-17

    公开

    公开

说明书

技术领域

本发明涉及一种主机对多厂商芯片设备数据交换协议进行动态转换的方法,属于计算机技术领域。

背景技术

芯片设备得以在全世界范围内迅猛发展,其标准化的制订和推广功不可没,ISO7816作为国际规范已成为各个智能芯片设备应用的根本和基础,其中,ISO7816规范中的APDU(application protocol data unit)部分对数据交换协议指令格式及主要功能做了详细说明和限制,尽管如此,各芯片设备的数据交换协议指令集仍是极具个性化和差异性,造成这种状况的原因如下:

1、ISO7816所规定的APDU指令集,过于全面和庞大,很多芯片设备厂商在设计自己的数据交换协议指令集时根据实际应用需要对该规范进行了裁剪性使用,只包含并实现了其中部分指令,比如:多数厂商不支持安全环境相关的指令。

2、ISO7816所规定的APDU指令集,某些指令细节的规定过于复杂,而规范本身并没有强制各芯片设备厂商严格遵照执行,很多芯片设备厂商在设计实现其数据交换协议指令时对其规范进行了改造,以便实现和用户理解,如:创建文件指令中,对文件的安全属性进行重新设计和支持。

3、ISO7816规范对APDU指令的规定也存在扩展性,各芯片设备厂商在设计实现自己的数据交换协议指令时发挥各自的优势,这也会带来各芯片设备数据交换协议指令的差异性,如:各芯片设备厂商对非对称密钥操作的指令就各不相同,主要体现在公钥信息出卡时机、私钥信息读取权限和读取方式上。

4、ISO7816规范是芯片设备设计实现的最佳实践总结,难免会滞后于市场的发展和新技术的兴起,而很多芯片设备制造商更乐于在自己的数据交换协议指令集实现过程中运用新技术,力求进一步创新,而新技术新思路往往是ISO7816规范里没有规定和限制的,各厂商的创新会加大芯片设备数据协议交换协议指令的差异性,如:各厂商对国产密码算法(SSF33算法)的支持就各具一格。

由于上述原因导致了市场上现有各芯片设备数据交换协议的差异性,这就给使用带来极大的不方便,针对于此主要有如下两种解决办法:

1、芯片设备开发商直接将其数据交换协议交给应用开发商,应用开发商在自己的应用程序中直接使用该数据交换协议与芯片设备交互,但是当芯片设备的数据交换协议发生增减改变时,应用开发商就要修改自己的应用程序,这就会影响应用程序的稳定性,并需要应用程序开发商做好日后修改和长期维护的准备,尤其是应用开发商需要同时支持多个芯片设备时,投入到应用程序开发、修改、维护上的工作量会明显增多;

2、芯片设备开发商对其数据交换协议进行封装,对外提供简单直观易使用的接口,以便应用可以通过这些接口与芯片设备交互,但这种方式仍然不能避免当芯片设备的数据交换协议发生增减改变时带来的程序修改和维护,只是将程序不稳定的风险和修改维护工作从应用程序开发商转移到了芯片设备开发商,而且若改动较大导致芯片设备开发商提供的接口也有所改变时,那么应用开发商也要随之修改应用程序,应用程序的稳定性仍然会受到影响。

发明内容

本发明的目的是提出一种主机对多厂商芯片设备数据交换协议进行动态转换的方法,开发一个通用的数据交换协议转换程序,程序中不体现任何一个芯片设备的数据交换协议,而是通过读取芯片设备的数据交换协议规则库来获得与其交互的指令规则,对于多厂商芯片设备的数据交换协议具有普遍的适用性。

本发明提出的主机对多厂商芯片设备数据交换协议进行动态转换的方法,包括以下步骤:

(1)分别为多种厂商芯片设备配置与主机中的数据交换协议转换模块通信的数据交换协议规则,并形成数据交换协议规则库;

(2)当主机中的应用模块向当前插入的芯片设备发送数据交互请求指令时,主机中的应用模块向主机中的数据交换协议转换模块发送数据交互请求指令;主机的数据交换协议转换模块接到上述数据交互指令后,从主机中的驱动模块分别获取当前插入芯片设备的厂商代码、产品代码、产品版本号,根据上述获取的厂商代码、产品代码、产品版本号,主机的数据交换协议转换模块从上述数据交换协议规则库中检索到与当前插入芯片设备相匹配的数据交换协议规则;

(3)主机中的数据交换协议转换模块根据上述检索到的数据交换协议规则,对来自主机中的应用模块的数据交互请求指令进行组包处理后,经由主机中的驱动模块发送至当前插入芯片设备,当前插入芯片设备对上述数据交互请求指令进行处理,并将处理数据通过主机的驱动模块返回至主机的数据交换协议转换模块;

(4)主机中的数据交换协议转换模块根据上述检索到的数据交换协议规则,从来自主机中的驱动模块的数据中获取相关信息,并返回给主机中的应用模块。

本发明提出的主机对多厂商芯片设备数据交换协议进行动态转换的方法,由于主机中的数据交换协议转换模块对各种芯片设备数据交换协议的识别是通过芯片设备中的厂商代码、产品代码、产品版本号从而读取数据交换协议规则方式实现的,因此即使有更多的芯片设备数据交换协议需要支持也不需修改主机中的数据交换协议转换模块的程序,这就保证了主机中的数据交换协议转换模块的稳定性,当已有主机中的数据交换协议转换模块需支持新的芯片设备数据交换协议时,只要按照已设计好的芯片设备数据交换协议规则配置流程和配置方法为该芯片设备数据交换协议增加一个新的数据交换协议规则,新的芯片设备数据交换协议就可以通过已有主机中的数据交换协议转换模块进行识别了,这也不再需要芯片设备厂商对外提供与其对应的数据交换协议接口程序,大大减少了芯片设备厂商的工作量,只要理解和掌握数据交换协议规则的配置方法,对于新的芯片设备数据交换协议的支持将更快捷、更可靠。

附图说明

图1是本发明方法的流程框图。

具体实施方式

本发明提出的主机对多厂商芯片设备数据交换协议进行动态转换的方法,其流程框图如图1所示,包括以下步骤:

(1)分别为多种厂商芯片设备配置与主机中的数据交换协议转换模块通信的数据交换协议规则,并形成数据交换协议规则库;

(2)当主机中的应用模块向当前插入的芯片设备发送数据交互请求指令时,主机中的应用模块向主机中的数据交换协议转换模块发送数据交互请求指令;主机的数据交换协议转换模块接到上述数据交互指令后,从主机中的驱动模块分别获取当前插入芯片设备的厂商代码、产品代码、产品版本号,根据上述获取的厂商代码、产品代码、产品版本号,主机的数据交换协议转换模块从上述数据交换协议规则库中检索到与当前插入芯片设备相匹配的数据交换协议规则;

(3)主机中的数据交换协议转换模块根据上述检索到的数据交换协议规则,对来自主机中的应用模块的数据交互请求指令进行组包处理后,经由主机中的驱动模块发送至当前插入芯片设备,当前插入芯片设备对上述数据交互请求指令进行处理,并将处理数据通过主机的驱动模块返回至主机的数据交换协议转换模块;

(4)主机中的数据交换协议转换模块根据上述检索到的数据交换协议规则,从来自主机中的驱动模块的数据中获取相关信息,并返回给主机中的应用模块。

以下介绍本发明的一个实施例:

以国内某厂商的芯片设备为例,说明其数据交换协议在windows系统上的动态转换过程。(假设这个芯片操作系统所在芯片设备的厂商代码、产品代码、产品版本号分别为0x9876、0x5432、0x1000,并假设主机中的应用模块将从芯片设备中读取一个文件标识是0x0001、文件长度是0x0010字节的二进制文件)。

新增芯片设备及其数据交换协议时,配置方法和步骤如下:

(1)修改数据交换协议规则库中的全局配置文件,即文件eid.ini,在该文件的段[PTL]中添加一属性及属性值,该属性为芯片设备的厂商代码、产品代码、产品版本号对应值的16进制显示的顺序组合,例子中的属性应为“987654321000”,该属性值为该芯片设备的数据交换协议规则对应的配置文件的路径及名称,例子中其文件名为:“987654321000.ini”,并假定该文件所在路径为:“C:\Program Files\eid\PTL”,则此处属性“987654321000”对应的属性值为:“C:\Program Files\eid\PTL\987654321000.ini”;

(2)配置该例子中的芯片设备的数据交换协议规则,即文件“987654321000.ini”,该文件的格式及所包含的段、及各段包含的属性、属性值格式等应按照已经设计好的数据交换协议规则配置说明进行配置,且配置时属性值需遵照芯片设备厂商提供的数据交换协议集说明,每一个数据交换协议作为一个单独的段,且格式都相同,例子中读取二进制文件所用到的数据交换协议段如下:

[Read_Binary]

CmdType=1

CLA=00

INS=B0

ArgCount=3

P1=%Arg1%

P2=%Arg2%

LcLen=0

Lc=-5

Data=-5

LeLen=1

Le=%Arg3%

MaxWaitTime=300

Reserve=

其中,属性CLA、INS、P1、P2、Lc、Data、Le的属性值按顺序组合符合ISO7816中规定的应用程序协议数据单元指令格式。

该芯片设备的数据交换协议规则即文件“987654321000.ini”配置完成后,需将该文件拷贝到路径“C:\Program Files\eid\PTL\”下,此后,主机的数据交换协议转换模块就可以根据该文件中的数据交换协议规则与当前插入芯片设备进行数据交互了。

当主机的应用模块向当前插入芯片设备发送读取二进制文件指令时,主机中的数据交换协议转换模块处理过程如下所述:

(1)主机的数据交换协议转换模块接到上述读取二进制文件指令后,从主机中的驱动模块分别获取当前插入芯片设备的厂商代码,产品代码、产品版本号,根据上述获取的厂商代码、产品代码、产品版本号,主机的数据交换协议转换模块先从上述数据交换协议规则库中检索到与当前插入芯片设备相匹配的数据交换协议规则,即文件“0x987654321000.ini”,再从该文件中获取与读取二进制文件对应的指令段[Read_Binary]及段内各属性值;

(2)主机中的数据交换协议转换模块根据上述检索到的读取二进制文件数据交换协议规则,对来自主机中的应用模块的读取二进制文件指令请求进行组包处理后得到数据流:0x00b0000110,再经由主机中的驱动模块发送至当前插入芯片设备,当前插入芯片设备对上述数据交互请求指令进行处理,具体处理过程为:先进行CLA合法性检查,然后找到文件标识符为0x0001的二进制文件,再按照文件长度0x0010读取该二进制文件0x0001的内容,最后当前插入芯片设备将读取出的文件内容等信息经由主机的驱动模块返回至主机中的数据交换协议转换模块;

(3)主机中的数据交换协议转换模块根据上述检索到的数据交换协议规则,从来自主机中的驱动模块的数据中获取标识为0x0001的二进制文件的长度为0x0010字节的有效信息,并将有效文件信息返回给主机中的应用模块。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号