一种主机与智能卡信息交互的方法及装置制造方法及图纸

技术编号:28558533 阅读:15 留言:0更新日期:2021-05-25 17:52
本发明专利技术提供一种主机与智能卡信息交互的方法及装置。该主机的操作系统为Linux系统,该方法包括:步骤1:主机调用业务请求接口生成业务请求信息,然后调用APDU指令接口对所述业务请求信息进行封装生成APDU业务指令;步骤2:主机调用CCID指令接口对所述APDU业务指令进行封装生成CCID业务指令;步骤3:主机根据设定的调用方式调用ioctl函数向智能卡发送所述CCID业务指令,以及接收智能卡返回的关于所述CCID业务指令的CCID响应指令,对CCID响应指令进行解析以获取业务响应信息;其中,调用方式包括:同步调用方式和异步调用方式。本发明专利技术可以使得在Linux平台下访问CCID协议的智能卡,实现数据通信且能够提高业务处理速度。

【技术实现步骤摘要】
一种主机与智能卡信息交互的方法及装置
本专利技术涉及数据通信
,尤其涉及一种主机与智能卡信息交互的方法及装置。
技术介绍
CCID(芯片卡接口设备)提供了一种智能卡读写设备与主机或其它嵌入式主机实现相互通讯的功能。APDU(应用协议数据单元)是卡片内应用和卡片外应用的通信格式。目前,Windows平台下可以通过API接口直接访问CCID协议的智能卡,但是在Linux平台下并不能直接访问CCID协议的智能卡,不能与智能卡进行数据通信,且存在业务处理速度慢的问题。
技术实现思路
针对在Linux平台下不能访问CCID协议智能卡、业务处理速度慢的问题,本专利技术提供一种主机与智能卡信息交互的方法及装置,可以使得在Linux平台下访问CCID协议的智能卡,实现数据通信且能够提高业务处理速度。本专利技术提供一种主机与智能卡信息交互的方法,主机的操作系统为Linux系统,所述方法包括:步骤1:主机调用业务请求接口生成业务请求信息,然后调用APDU指令接口对所述业务请求信息进行封装生成APDU业务指令;步骤2:主机调用CCID指令接口对所述APDU业务指令进行封装生成CCID业务指令;步骤3:主机根据设定的调用方式调用ioctl函数向智能卡发送所述CCID业务指令,以及接收智能卡返回的关于所述CCID业务指令的CCID响应指令,对CCID响应指令进行解析以获取业务响应信息;其中,调用方式包括:同步调用方式和异步调用方式。进一步地,步骤3具体包括:当采用同步调用方式时,主机先通过调用ioctl函数向智能卡发送所述CCID业务指令,然后调用ioctl函数且保持等待状态直到接收到智能卡返回的CCID响应指令,在对所述CCID响应指令进行解析以获取业务响应信息之后,再继续处理后续的相关业务信息;当采用异步调用方式时,主机先通过调用ioctl函数向智能卡发送所述CCID业务指令,然后立即返回继续处理后续的相关业务信息,待接收到指令完成信息后再调用ioctl函数接收智能卡返回的CCID响应指令,然后对所述CCID响应指令进行解析以获取业务响应信息。进一步地,在智能卡接收到主机发送的所述CCID业务指令后,智能卡先对所述CCID业务指令进行解析,然后进行相关业务处理生成业务响应信息,接着对将所述业务响应信息进行封装生成CCID响应指令后发送至主机。进一步地,步骤3中,主机对CCID响应指令进行解析具体包括:主机调用CCID指令接口对所述CCID响应指令进行解析后获得APDU响应指令,再通过调用APDU指令接口对所述APDU响应指令进行解析后获得业务响应信息。进一步地,主机封装生成APDU业务指令和CCID业务指令的操作,主机解析CCID响应指令和APDU响应指令的操作,以及主机向智能卡发送CCID业务指令和接收智能卡返回的CCID响应指令的操作均在主机的用户空间进行。进一步地,在生成业务请求信息之前,还包括:主机对智能卡进行枚举和连接打开操作;在获得业务响应信息之后,还包括:主机对智能卡进行断开关闭操作。另一方面,本专利技术提供一种主机与智能卡信息交互的装置,包括:主机和智能卡,所述主机的操作系统为Linux系统;所述主机包括业务请求接口模块、APDU指令接口模块和CCID指令接口模块和调用模块;所述主机,用于调用业务请求接口模块生成业务请求信息,然后调用APDU指令接口模块对所述业务请求信息进行封装生成APDU业务指令;还用于调用CCID指令接口模块对所述APDU业务指令进行封装生成CCID业务指令;以及用于通过调用模块根据设定的调用方式调用ioctl函数向智能卡发送所述CCID业务指令,以及接收智能卡返回的关于所述CCID业务指令的CCID响应指令,对CCID响应指令进行解析以获取业务响应信息;其中,调用方式包括:同步调用方式和异步调用方式。进一步地,所述调用模块包括:同步调用子模块和异步调用子模块;对应地,所述主机,具体用于当采用同步调用方式时,通过同步调用子模块调用ioctl函数向智能卡发送所述CCID业务指令,然后调用ioctl函数且保持等待状态直到接收到智能卡返回的CCID响应指令,在对所述CCID响应指令进行解析以获取业务响应信息之后,再继续处理后续的相关业务信息;以及,具体用于当采用异步调用方式时,通过异步调用子模块调用ioctl函数向智能卡发送所述CCID业务指令,然后立即返回继续处理后续的相关业务信息,待接收到指令完成信息后再调用ioctl函数接收智能卡返回的CCID响应指令,然后对所述CCID响应指令进行解析以获取业务响应信息。进一步地,所述智能卡包括CCID读写模块和业务处理模块;所述CCID读写模块,用于在智能卡接收到主机发送的所述CCID业务指令后,对所述CCID业务指令进行解析;以及对业务处理模块返回的业务响应信息进行封装生成CCID响应指令后发送至主机;所述业务处理模块,用于进行相关业务处理生成业务响应信息,并将所述业务响应信息返回至CCID读写模块。进一步地,主机用于对所述CCID响应指令进行解析以获取业务响应信息,具体包括:主机用于调用CCID指令接口模块对所述CCID响应指令进行解析后获得APDU响应指令,再通过APDU指令接口模块对所述APDU响应指令进行解析后获得业务响应信息。本专利技术的有益效果:本专利技术提供的主机与智能卡信息交互的方法及装置,通过同步调用方式和异步调用方式进行Linux主机与CCID协议的智能卡之间的数据通信,调用者依据自身的业务请求需要选择同步调用或异步调用方式:对于业务请求没有时序上的严格关系,而对业务请求处理效率有高要求,需要在处理一业务的同时继续处理下一业务的情况下,可以采用异步调用方式,如此能够减少用户态阻塞时间,大幅度提高业务的处理速度;对于业务请求进程有严格控制的情况,可以选择同步调用方式,能够对业务流程进行控制,容易获知和处理异常信息,避免不可掌控的意外情况。通过设置两种调用方式调用ioctl函数,可以使得在Linux平台下访问CCID协议的智能卡,实现数据通信且能够提高业务处理速度。附图说明图1为本专利技术实施例提供的一种主机与智能卡信息交互的方法的流程示意图之一;图2为本专利技术实施例提供的一种主机与智能卡信息交互的方法的流程示意图之二;图3为本专利技术实施例提供的一种主机与智能卡信息交互的装置的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1如图1所示,本专利技术实施例提出一种主机与智能卡信息交互的方法,主机的操作系统为Linux系统,主机与智能卡建立通信连接,所述主机与智能卡信息交本文档来自技高网...

【技术保护点】
1.一种主机与智能卡信息交互的方法,其特征在于,主机的操作系统为Linux系统,所述方法包括:/n步骤1:主机调用业务请求接口生成业务请求信息,然后调用APDU指令接口对所述业务请求信息进行封装生成APDU业务指令;/n步骤2:主机调用CCID指令接口对所述APDU业务指令进行封装生成CCID业务指令;/n步骤3:主机根据设定的调用方式调用ioctl函数向智能卡发送所述CCID业务指令,以及接收智能卡返回的关于所述CCID业务指令的CCID响应指令,对CCID响应指令进行解析以获取业务响应信息;其中,调用方式包括:同步调用方式和异步调用方式。/n

【技术特征摘要】
1.一种主机与智能卡信息交互的方法,其特征在于,主机的操作系统为Linux系统,所述方法包括:
步骤1:主机调用业务请求接口生成业务请求信息,然后调用APDU指令接口对所述业务请求信息进行封装生成APDU业务指令;
步骤2:主机调用CCID指令接口对所述APDU业务指令进行封装生成CCID业务指令;
步骤3:主机根据设定的调用方式调用ioctl函数向智能卡发送所述CCID业务指令,以及接收智能卡返回的关于所述CCID业务指令的CCID响应指令,对CCID响应指令进行解析以获取业务响应信息;其中,调用方式包括:同步调用方式和异步调用方式。


2.根据权利要求1所述的方法,其特征在于,步骤3具体包括:
当采用同步调用方式时,主机先通过调用ioctl函数向智能卡发送所述CCID业务指令,然后调用ioctl函数且保持等待状态直到接收到智能卡返回的CCID响应指令,在对所述CCID响应指令进行解析以获取业务响应信息之后,再继续处理后续的相关业务信息;
当采用异步调用方式时,主机先通过调用ioctl函数向智能卡发送所述CCID业务指令,然后立即返回继续处理后续的相关业务信息,待接收到指令完成信息后再调用ioctl函数接收智能卡返回的CCID响应指令,然后对所述CCID响应指令进行解析以获取业务响应信息。


3.根据权利要求1所述的方法,其特征在于,在智能卡接收到主机发送的所述CCID业务指令后,智能卡先对所述CCID业务指令进行解析,然后进行相关业务处理生成业务响应信息,接着对将所述业务响应信息进行封装生成CCID响应指令后发送至主机。


4.根据权利要求1所述的方法,其特征在于,步骤3中,主机对CCID响应指令进行解析具体包括:主机调用CCID指令接口对所述CCID响应指令进行解析后获得APDU响应指令,再通过调用APDU指令接口对所述APDU响应指令进行解析后获得业务响应信息。


5.根据权利要求4所述的方法,其特征在于,主机封装生成APDU业务指令和CCID业务指令的操作,主机解析CCID响应指令和APDU响应指令的操作,以及主机向智能卡发送CCID业务指令和接收智能卡返回的CCID响应指令的操作均在主机的用户空间进行。


6.根据权利要求1所述的方法,其特征在于,在生成业务请求信息之前,还包括:主机对智能卡进行枚举和连接打开操作;在获得业务响应信息之后,还包括...

【专利技术属性】
技术研发人员:彭金辉徐晓兵习道彬雷宗华刘武忠
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1