CN111443994A - 一种模拟智能卡驱动程序、信息交互系统及其工作方法 - Google Patents

一种模拟智能卡驱动程序、信息交互系统及其工作方法 Download PDF

Info

Publication number
CN111443994A
CN111443994A CN202010251009.5A CN202010251009A CN111443994A CN 111443994 A CN111443994 A CN 111443994A CN 202010251009 A CN202010251009 A CN 202010251009A CN 111443994 A CN111443994 A CN 111443994A
Authority
CN
China
Prior art keywords
smart card
program
data
shared memory
driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010251009.5A
Other languages
English (en)
Other versions
CN111443994B (zh
Inventor
董建桥
曹炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Hengbao Intelligent System Technology Co Ltd
Original Assignee
Jiangsu Hengbao Intelligent System Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Hengbao Intelligent System Technology Co Ltd filed Critical Jiangsu Hengbao Intelligent System Technology Co Ltd
Priority to CN202010251009.5A priority Critical patent/CN111443994B/zh
Publication of CN111443994A publication Critical patent/CN111443994A/zh
Application granted granted Critical
Publication of CN111443994B publication Critical patent/CN111443994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开一种模拟智能卡驱动程序、信息交互系统及其工作方法。所述信息交互系统包括虚拟智能卡程序、模拟智能卡驱动服务程序和终端应用程序;虚拟智能卡程序具备实体智能卡操作系统的所有功能,用于接收终端应用程序通过模拟智能卡驱动服务程序发送的APDU指令,以及根据APDU指令运行COS得到响应数据,以及将响应数据返回模拟智能卡驱动服务程序;模拟智能卡驱动服务程序实现虚拟智能卡程序与终端应用程序信息交互,用于在虚拟智能卡程序和终端应用程序之间转发数据;终端应用程序用于向模拟智能卡驱动服务程序发送APDU指令,以及接收虚拟智能卡程序通过模拟智能卡驱动服务程序返回的响应数据。本申请能够提高COS的开发效率。

Description

一种模拟智能卡驱动程序、信息交互系统及其工作方法
技术领域
本申请涉及智能卡技术领域,尤其涉及一种模拟智能卡驱动程序、信息交互系统及其工作方法。
背景技术
智能卡操作系统COS的全称是Chip Operating System(片内操作系统),它一般是紧紧围绕着它所服务的智能卡的特点而开发的。由于不可避免地受到了智能卡内微处理器芯片的性能及内存容量的影响,因此,COS在很大程度上不同于我们通常所能见到的微机上的操作系统(例如DOS、UNIX等)。
首先,COS是一个专用系统而不是通用系统。即:一种COS一般都只能应用于特定的某种(或者是某些)智能卡,不同卡内的COS一般是不相同的。因为COS一般都是根据某种智能卡的特点及其应用范围而特定设计开发的,尽管它们在所实际完成的功能上可能大部分都遵循着同一个国际标准。其次,与那些常见的微机上的操作系统相比较而言,COS在本质上更加接近于临控程序、而不是一个通常所谓的真正意义上的操作系统,这一点至少在目前看来仍是如此。因为在当前阶段,COS所需要解决的主要还是对外部的命令如何进行处理、响应的问题,这其中一般并不涉及到共享、并发的管理及处理,而且就智能卡在目前的应用情况而看,并发和共享的工作也确实是不需要的。COS在设计时一般都是紧密结合智能卡内存储器分区的情况,按照国际标准(ISO/IEC7816系列标准)中所规定的一些功能进行设计、开发。但是由于目前智能卡的发展速度很快,而国际标准的制定周期相对比较长一些,因而造成了当前的智能卡国际标准还不太完善的情况,据此,许多厂家又各自都对自己开发的COS作了一引起扩充。
因为智能卡COS一般都是根据某种智能卡的硬件特点及其应用范围而特定设计开发的,故属于私有系统。一种COS一般都只能应用于特定的某种(或者是某些)智能卡,不同卡内的COS一般是不相同的。COS开发人员因为使用芯片的底层不同或者应用需求不同,往往都会针对每一款新产品的COS进行重新开发,需要投入大量的时间和精力进行调试和测试工作。就目前现阶段而言,智能卡的COS调试手段比较单一,开发阶段一般都是采用芯片商提供的硬件仿真器进行调试和测试的。待开发完成后,再将COS的二进制文件掩膜到成品卡片中进行生产。
由于硬件仿真器资源个数的限制,以及各个厂家提供的硬件仿真器质量参差不齐,仿真器在测试过程中所表现的性能方面,甚至不如实体卡片。对于COS的调试、测试带来了不便,严重影响了COS的开发效率。
发明内容
本申请提供了一种模拟智能卡虚拟程序,包括服务程序和驱动程序;
驱动程序用于通过PC/SC接口接收来自终端应用程序的APDU指令;以及通过PC/SC接口将响应数据传递给终端应用程序;
服务程序用于将APDU指令数据通过Socket端口发送给虚拟智能卡程序;以及从Socket端口中获取虚拟智能卡程序返回的响应数据。
如上所述的模拟智能卡虚拟程序,其中服务程序包括Socket端口程序和共享内存;驱动程序包括PC/SC驱动和共享内存驱动;
驱动程序用于利用PC/SC驱动通过PC/SC接口接收来自终端应用程序的APDU指令数据并写入到共享内存中;以及利用共享内存驱动读取共享内存中的响应数据,利用PC/SC驱动通过PC/SC接口传递给终端应用程序;
服务程序用于将共享内存中的数据通过Socket端口发送给虚拟智能卡程序,或者从Socket端口中获取到虚拟智能卡程序返回的数据,并写入到共享内存中。
本申请还提供一种模拟智能卡信息交互系统,包括:上述任一项所述的模拟智能卡驱动程序,还包括虚拟智能卡程序和终端应用程序;
虚拟智能卡程序具备实体智能卡操作系统的所有功能,用于接收终端应用程序通过模拟智能卡驱动服务程序发送的APDU指令,以及根据APDU指令运行COS得到响应数据,以及将响应数据返回模拟智能卡驱动服务程序;
模拟智能卡驱动服务程序实现虚拟智能卡程序与终端应用程序信息交互,用于在虚拟智能卡程序和终端应用程序之间转发数据;
终端应用程序用于向模拟智能卡驱动服务程序发送APDU指令,以及接收虚拟智能卡程序通过模拟智能卡驱动服务程序返回的响应数据。
本申请还提供一种模拟智能卡的信息交互系统的工作方法,包括:
模拟智能卡驱动服务程序启动,创建共享内存;
当模拟智能卡驱动服务程序通过PC/SC接口接收到终端应用程序的APDU指令后,将APDU指令数据写入共享内存中,通过Socket端口将共享内存中的数据发送至虚拟智能卡程序;
虚拟智能卡程序接收到Socket端口传来的数据后,运行COS将信息处理后的响应数据通过Socket端口传递给模拟智能卡驱动服务程序。
模拟智能卡驱动服务程序接收到来自Socket端口的响应数据后,将响应数据写入共享内容中,通过PC/SC接口将共享内存中的数据发送至终端应用程序。
如上所述的模拟智能卡的信息交互系统的工作方法,其中,模拟智能卡驱动服务程序包括服务程序和驱动程序;服务程序在启动后,创建共享内存,并创建读写事件,创建完成后,服务程序挂起,轮询等待读事件被触发。
如上所述的模拟智能卡的信息交互系统的工作方法,其中,服务程序在挂起前需尝试通过Socket端口与虚拟智能卡程序进行连接,若连接失败,则表明当前无法连接虚拟智能卡程序,终端应用程序在预定时间后未接收到任何消息,表现为未接收到数据,提示终端未打开或端口错误等信息;若连接成功,则服务程序挂起,轮询等待读事件被触发。
如上所述的模拟智能卡的信息交互系统的工作方法,其中,模拟智能卡驱动服务程序处理终端应用程序的APDU指令,具体包括如下子步骤:
当驱动程序通过PC/SC接口接收到来自终端应用程序的APDU指令后,将APDU指令数据通过共享内存驱动写入服务程序的共享内存中,并使能读事件,驱动程序挂起,轮询等待写事件被触发;
服务程序检查到读事件使能后,服务程序唤醒,读取共享内存中的数据,将共享内存中的数据通过Socket端口发送至虚拟智能卡程序,并将Socket端口设置为接收状态,等待虚拟智能卡程序的响应数据。
如上所述的模拟智能卡的信息交互系统的工作方法,其中,当驱动程序通过PC/SC接口接收到来自终端应用程序的APDU指令后,PC/SC驱动将APDU指令数据写入PC/SC缓存中;
驱动程序从PC/SC缓存中接收到APDU指令数据,然后通过共享内存驱动打开共享内存,并将APDU指令数据映射到共享内存段中,并使能读事件,之后驱动程序挂起,轮询等待一个写事件被触发。
如上所述的模拟智能卡的信息交互系统的工作方法,其中,服务程序通过Socket端口接收到虚拟智能卡程序的响应数据后,将响应数据写入共享内存中,并使能写事件;
驱动程序检测到写事件使能后,驱动程序被唤醒,利用共享内存驱动从共享内存中读取数据,将共享内存中的数据通过PC/SC接口发送给终端应用程序。
如上所述的模拟智能卡的信息交互系统的工作方法,其中,在模拟智能卡驱动服务程序与虚拟智能卡程序建立Socket连接后,如果在收发数据过程中出现通信错误,模拟智能卡驱动服务程序会返回至连接阶段,等待再次与虚拟智能卡程序的重新连接。
本申请实现的有益效果如下:采用本申请提供的模拟智能卡的信息交互系统及其工作方法,能够为COS开发人员在开发调试智能卡COS的过程中彻底摆脱硬件仿真器资源不足的限制,通过在PC端实现使得COS运行更快,可大大节约时间成本,提高COS开发人员的工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种模拟智能卡的信息交互系统结构图;
图2是本申请实施例一提供的一种模拟智能卡的信息交互系统的工作方法流程图;
图3是本申请实施例二提供的一种模拟智能卡的信息交互系统的工作方法具体工作线程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
传统智能卡COS在开发阶段,往往调试比较繁琐,需要先启动硬件仿真器,然后编译COS代码,将COS代码下载到仿真器中,然后再执行各种预个人化、个人化、测试脚本,才能分析和跟踪问题;由于硬件仿真器性能不加,导致在调试和测试时间成本比较高。
基于此,本申请实施例一提供一种模拟智能卡的信息交互系统,其中本申请中的信息交互系统为PC端或其他测试设备。图1展示了本申请的模拟智能卡的信息交互系统的结构图,所述信息交互系统包括虚拟智能卡程序(VirtualSmartCard)、模拟智能卡驱动服务程序和终端应用程序(Terminal Application);
其中,虚拟智能卡程序(VirtualSmartCard)是在PC端实现的模拟智能卡的程序,该模拟智能卡程序具备实体智能卡操作系统的所有功能;通过在PC端实现的模拟智能卡程序,能够实现在开发调试智能卡COS的过程中彻底摆脱硬件仿真器导致资源不足的限制。
终端应用程序(Terminal Application)是与PC/SC驱动相连接的PC端应用程序,用于将数据传入PC/SC接口或从PC/SC接口中读取数据,其中,终端应用程序为基本的脚本收发工具或测试工具等。
模拟智能卡驱动服务程序用于实现虚拟智能卡程序(VirtualSmartCard)与终端应用程序(Terminal Application)信息交互;
模拟智能卡驱动服务程序包括服务程序(Service routine)和驱动程序(Driverroutine)。其中,服务程序(Service routine)包括Socket端口程序(Socket API)和共享内存(ShareMemory);驱动程序(Driver routine)包括PC/SC驱动(PC/SCDriver)和共享内存驱动(ShareMemoryDriver);
驱动程序(Driver routine)用于利用PC/SC接口接收来自终端应用程序的数据并写入到共享内存中,或者读取共享内存中的数据通过PC/SC接口传递给终端应用程序;
服务程序(Service routine)用于将共享内存中的数据通过Socket端口发送给虚拟智能卡程序,或者从Socket端口中获取到虚拟智能卡程序返回的数据,并写入到共享内存中。
本申请通过在PC端实现一个模拟智能卡程序,利用RAM模拟卡片原有硬件空间、利用软件程序模拟卡片硬件算法、利用Socket和共享内存开发的PC/SC驱动来模拟卡片原有的APDU数据交互,开发调试智能卡COS的过程中彻底摆脱了硬件仿真器资源不足的限制。且由于PC端的资源更大,使得模拟智能卡COS运行的速度大大提升。因为实现了模拟智能卡特有的“PC/SC驱动程序”进行数据通信,可以使得模拟智能卡可以像真的智能卡一样,利用终端应用程序通过“模拟智能卡PC/SC驱动”进行链接,达到快速开发、调试和测试智能卡COS的目的,极大的提升了COS开发人员的工作效率。
基于上述在信息交互系统中模拟智能卡驱动服务程序的结构,本申请还提供一种模拟智能卡的信息交互系统的工作方法,如图2所示,包括:
步骤210、模拟智能卡驱动服务程序启动,创建共享内存;
本申请实施例中,通过模拟智能卡驱动服务程序实现终端应用程序与虚拟智能卡程序之间的数据交互;在模拟智能卡驱动服务程序中设置PC/SC驱动和Socket端口程序,实现通过PC/SC接口接收终端应用程序的指令和向终端应用程序发送响应数据,以及通过Socket端口向虚拟智能卡程序发送指令数据和接收虚拟智能卡程序返回的响应数据;其中,模拟智能卡驱动服务程序传输的数据均存储在共享内存中或从共享内存中读取;
模拟智能卡驱动服务程序包括服务程序和驱动程序;服务程序在启动后,创建共享内存,并创建读写事件,创建完成后,服务程序挂起,轮询等待读事件被触发;
具体地,服务程序(Service)在启动后,先利用CreateFileMappingW函数创建一段共享内存SharedMemory,以便用于后续与驱动程序(Driver routine)之间的数据交互;然后服务程序(Service)利用CreateEvent函数创建两个同步事件:读事件rEvent和写事件wEvent。
另外,服务程序在挂起前需尝试通过Socket端口与虚拟智能卡程序进行连接,若连接失败,则表明当前无法连接虚拟智能卡程序,终端应用程序在预定时间后未接收到任何消息,表现为未接收到数据,提示终端未打开或端口错误等信息;若连接成功,则服务程序挂起,轮询等待读事件被触发。
步骤220、当模拟智能卡驱动服务程序通过PC/SC接口接收到终端应用程序的APDU指令后,将APDU指令数据写入共享内存中,通过Socket端口将共享内存中的数据发送至虚拟智能卡程序;
具体地,模拟智能卡驱动服务程序执行终端应用程序的APDU指令,具体包括如下子步骤:
步骤221、当驱动程序通过PC/SC接口接收到来自终端应用程序的APDU指令后,将APDU指令数据通过共享内存驱动写入服务程序的共享内存中,并使能读事件,驱动程序挂起,轮询等待写事件被触发;
本申请实施例中,若终端应用程序需要向虚拟智能卡程序发送APDU指令,则终端应用程序先通过PC/SC接口向模拟智能卡驱动服务程序发送APDU指令,PC/SC驱动将APDU指令数据写入PC/SC缓存(PC/SC buffer)中;
驱动程序利用SmartcardT0Request接口从PC/SC缓存中接收到APDU指令数据,然后通过共享内存驱动打开共享内存,并将APDU指令数据映射到共享内存段中,并使能读(rEvent)事件,之后驱动程序挂起,轮询等待一个wEvent事件被触发。
步骤222、服务程序检查到读事件使能后,服务程序唤醒,读取共享内存中的数据,将共享内存中的数据通过Socket端口发送至虚拟智能卡程序,并将Socket端口设置为接收状态,等待虚拟智能卡程序的响应数据;
当服务程序检查到一个读事件(rEvent)使能后,服务程序被唤醒,从共享内存中读出来自终端应用程序的APDU指令数据,然后利用建立好的Socket通信端口,将数据传递给虚拟智能卡程序,并将Socket端口转换为接收状态,等待虚拟智能卡程序(VirtualSmartCard)的响应数据。
返回参见图2,步骤230、虚拟智能卡程序接收到Socket端口传来的数据后,运行COS将信息处理后的响应数据通过Socket端口传递给模拟智能卡驱动服务程序。
步骤240、模拟智能卡驱动服务程序接收到来自Socket端口的响应数据后,将响应数据写入共享内容中,通过PC/SC接口将共享内存中的数据发送至终端应用程序;
具体地,服务程序通过Socket端口接收到虚拟智能卡程序的响应数据后,将响应数据写入共享内存中,并使能写事件(wEvent);驱动程序检测到写事件(wEvent)使能后,驱动程序被唤醒,利用共享内存驱动从共享内存中读取数据,将共享内存中的数据通过PC/SC接口发送给终端应用程序。
需要说明的是,在模拟智能卡驱动服务程序与虚拟智能卡程序建立Socket连接后,如果在收发数据过程中出现通信错误,模拟智能卡驱动服务程序会返回至连接阶段,等待再次与虚拟智能卡程序的重新连接。
实施例二
本申请实施例二详细介绍基于图1的信息交互系统结构图的各组件工作方法;图3展示了各组件的工作线程图。
(1)虚拟智能卡程序线程工作流程:
与服务驱动建立Socket连接;
运行COS处理来自服务驱动的数据,得到响应数据;
返回响应数据至服务驱动。
(2)服务程序线程工作流程:
创建共享内存;
创建读写同步事件;
与虚拟智能卡程序建立Socket连接,等待一个读事件;
读取共享内存中的数据;
通过Socket接口发送数据,将数据发送给虚拟智能卡程序处理;
等待接收Socket接口数据;
向共享内存写入数据,使能一个写事件。
(3)驱动程序线程工作流程:
利用PC/SC接口接收来自终端应用程序的数据;
将数据写入共享内存;
设置读事件;
等待一个写事件;
从共享内存中读取数据;
将读取的数据通过PC/SC接口发送给终端应用程序。
(4)终端应用程序线程工作流程
利用PC/SC接口向驱动程序发送数据;
利用PC/SC接口接收来自驱动程序的数据。
采用本申请的技术方案,达到如下技术效果:
(1)能够为COS开发人员在开发调试智能卡COS的过程中彻底摆脱硬件仿真器资源不足的限制;
(2)本申请模拟智能卡程序在PC端实现,由于PC端的资源更大,所以COS运行更快,可大大节约时间成本;
(3)因为实现了模拟智能卡特有的“PC/SC驱动程序”进行数据通信,可以使得模拟智能卡可以像真的智能卡一样,利用终端应用程序通过“模拟智能卡PC/SC驱动”进行链接,达到快速开发、调试和测试智能卡COS的目的,极大的提升了COS开发人员的工作效率。
以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种模拟智能卡虚拟程序,其特征在于,包括服务程序和驱动程序;
驱动程序用于通过PC/SC接口接收来自终端应用程序的APDU指令;以及通过PC/SC接口将响应数据传递给终端应用程序;
服务程序用于将APDU指令数据通过Socket端口发送给虚拟智能卡程序;以及从Socket端口中获取虚拟智能卡程序返回的响应数据。
2.如权利要求1所述的模拟智能卡虚拟程序,其特征在于,服务程序包括Socket端口程序和共享内存;驱动程序包括PC/SC驱动和共享内存驱动;
驱动程序用于利用PC/SC驱动通过PC/SC接口接收来自终端应用程序的APDU指令数据并写入到共享内存中;以及利用共享内存驱动读取共享内存中的响应数据,利用PC/SC驱动通过PC/SC接口传递给终端应用程序;
服务程序用于将共享内存中的数据通过Socket端口发送给虚拟智能卡程序,或者从Socket端口中获取到虚拟智能卡程序返回的数据,并写入到共享内存中。
3.一种模拟智能卡信息交互系统,其特征在于,包括:如权利要求1-2任一项所述的模拟智能卡驱动程序,还包括虚拟智能卡程序和终端应用程序;
虚拟智能卡程序具备实体智能卡操作系统的所有功能,用于接收终端应用程序通过模拟智能卡驱动服务程序发送的APDU指令,以及根据APDU指令运行COS得到响应数据,以及将响应数据返回模拟智能卡驱动服务程序;
模拟智能卡驱动服务程序实现虚拟智能卡程序与终端应用程序信息交互,用于在虚拟智能卡程序和终端应用程序之间转发数据;
终端应用程序用于向模拟智能卡驱动服务程序发送APDU指令,以及接收虚拟智能卡程序通过模拟智能卡驱动服务程序返回的响应数据。
4.一种模拟智能卡的信息交互系统的工作方法,其特征在于,包括:
模拟智能卡驱动服务程序启动,创建共享内存;
当模拟智能卡驱动服务程序通过PC/SC接口接收到终端应用程序的APDU指令后,将APDU指令数据写入共享内存中,通过Socket端口将共享内存中的数据发送至虚拟智能卡程序;
虚拟智能卡程序接收到Socket端口传来的数据后,运行COS将信息处理后的响应数据通过Socket端口传递给模拟智能卡驱动服务程序;
模拟智能卡驱动服务程序接收到来自Socket端口的响应数据后,将响应数据写入共享内容中,通过PC/SC接口将共享内存中的数据发送至终端应用程序。
5.如权利要求4所述的模拟智能卡的信息交互系统的工作方法,其特征在于,模拟智能卡驱动服务程序包括服务程序和驱动程序;服务程序在启动后,创建共享内存,并创建读写事件,创建完成后,服务程序挂起,轮询等待读事件被触发。
6.如权利要求5所述的模拟智能卡的信息交互系统的工作方法,其特征在于,服务程序在挂起前需尝试通过Socket端口与虚拟智能卡程序进行连接,若连接失败,则表明当前无法连接虚拟智能卡程序,终端应用程序在预定时间后未接收到任何消息,表现为未接收到数据,提示终端未打开或端口错误等信息;若连接成功,则服务程序挂起,轮询等待读事件被触发。
7.如权利要求5所述的模拟智能卡的信息交互系统的工作方法,其特征在于,模拟智能卡驱动服务程序处理终端应用程序的APDU指令,具体包括如下子步骤:
当驱动程序通过PC/SC接口接收到来自终端应用程序的APDU指令后,将APDU指令数据通过共享内存驱动写入服务程序的共享内存中,并使能读事件,驱动程序挂起,轮询等待写事件被触发;
服务程序检查到读事件使能后,服务程序唤醒,读取共享内存中的数据,将共享内存中的数据通过Socket端口发送至虚拟智能卡程序,并将Socket端口设置为接收状态,等待虚拟智能卡程序的响应数据。
8.如权利要求7所述的模拟智能卡的信息交互系统的工作方法,其特征在于,
当驱动程序通过PC/SC接口接收到来自终端应用程序的APDU指令后,PC/SC驱动将APDU指令数据写入PC/SC缓存中;
驱动程序从PC/SC缓存中接收到APDU指令数据,然后通过共享内存驱动打开共享内存,并将APDU指令数据映射到共享内存段中,并使能读事件,之后驱动程序挂起,轮询等待一个写事件被触发。
9.如权利要求7所述的模拟智能卡的信息交互系统的工作方法,其特征在于,
服务程序通过Socket端口接收到虚拟智能卡程序的响应数据后,将响应数据写入共享内存中,并使能写事件;
驱动程序检测到写事件使能后,驱动程序被唤醒,利用共享内存驱动从共享内存中读取数据,将共享内存中的数据通过PC/SC接口发送给终端应用程序。
10.如权利要求4所述的模拟智能卡的信息交互系统的工作方法,其特征在于,在模拟智能卡驱动服务程序与虚拟智能卡程序建立Socket连接后,如果在收发数据过程中出现通信错误,模拟智能卡驱动服务程序会返回至连接阶段,等待再次与虚拟智能卡程序的重新连接。
CN202010251009.5A 2020-04-01 2020-04-01 一种包含模拟智能卡驱动程序的装置、系统及方法 Active CN111443994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010251009.5A CN111443994B (zh) 2020-04-01 2020-04-01 一种包含模拟智能卡驱动程序的装置、系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010251009.5A CN111443994B (zh) 2020-04-01 2020-04-01 一种包含模拟智能卡驱动程序的装置、系统及方法

Publications (2)

Publication Number Publication Date
CN111443994A true CN111443994A (zh) 2020-07-24
CN111443994B CN111443994B (zh) 2023-06-23

Family

ID=71649422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010251009.5A Active CN111443994B (zh) 2020-04-01 2020-04-01 一种包含模拟智能卡驱动程序的装置、系统及方法

Country Status (1)

Country Link
CN (1) CN111443994B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113508411A (zh) * 2021-02-05 2021-10-15 深圳市汇顶科技股份有限公司 虚拟电子卡管理方法、系统及安全芯片、终端和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020080190A1 (en) * 2000-12-23 2002-06-27 International Business Machines Corporation Back-up and usage of secure copies of smart card data objects
US6516357B1 (en) * 1998-02-08 2003-02-04 International Business Machines Corporation System for accessing virtual smart cards for smart card application and data carrier
CN1904864A (zh) * 2006-08-15 2007-01-31 北京飞天诚信科技有限公司 一种使hid设备能提供智能卡接口的装置及方法
CN2929828Y (zh) * 2006-07-27 2007-08-01 北京飞天诚信科技有限公司 智能卡仿真系统
CN101493900A (zh) * 2009-03-02 2009-07-29 北京飞天诚信科技有限公司 一种智能卡的操作方法及系统
CN101938520A (zh) * 2010-09-07 2011-01-05 中兴通讯股份有限公司 一种基于移动终端签名的远程支付系统及方法
CN103365701A (zh) * 2013-07-10 2013-10-23 飞天诚信科技股份有限公司 一种模拟读卡器的工作方法和模拟通信系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516357B1 (en) * 1998-02-08 2003-02-04 International Business Machines Corporation System for accessing virtual smart cards for smart card application and data carrier
US20020080190A1 (en) * 2000-12-23 2002-06-27 International Business Machines Corporation Back-up and usage of secure copies of smart card data objects
CN2929828Y (zh) * 2006-07-27 2007-08-01 北京飞天诚信科技有限公司 智能卡仿真系统
CN1904864A (zh) * 2006-08-15 2007-01-31 北京飞天诚信科技有限公司 一种使hid设备能提供智能卡接口的装置及方法
CN101493900A (zh) * 2009-03-02 2009-07-29 北京飞天诚信科技有限公司 一种智能卡的操作方法及系统
CN101938520A (zh) * 2010-09-07 2011-01-05 中兴通讯股份有限公司 一种基于移动终端签名的远程支付系统及方法
CN103365701A (zh) * 2013-07-10 2013-10-23 飞天诚信科技股份有限公司 一种模拟读卡器的工作方法和模拟通信系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WAYNE JANSEN: "Smart card authentication for mobile devices" *
刘慧: "Java智能卡的安全性分析与研究" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113508411A (zh) * 2021-02-05 2021-10-15 深圳市汇顶科技股份有限公司 虚拟电子卡管理方法、系统及安全芯片、终端和存储介质
US11907931B2 (en) 2021-02-05 2024-02-20 Shenzhen GOODIX Technology Co., Ltd. Method and system for managing virtual electronic card, secure chip, terminal and storage medium

Also Published As

Publication number Publication date
CN111443994B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
US6769622B1 (en) System and method for simulating universal serial bus smart card device connected to USB host
CN109324991B (zh) 一种pcie设备的热插拔装置、方法、介质及系统
JP2004227588A (ja) Sdioカード開発システム
CN109782153A (zh) 一种芯片测试的方法、装置、芯片及计算机存储介质
CN114721719B (zh) 一种在集群中容器化部署异构应用的方法和系统
US20230214243A1 (en) One-machine multi-control method, apparatus, system and electronic device
CN112996020A (zh) 一种基于蓝牙的自动化测试方法、装置及蓝牙测试终端
CN111443994B (zh) 一种包含模拟智能卡驱动程序的装置、系统及方法
CN112764981B (zh) 一种协同测试系统及方法
CN111897582B (zh) 一体机以太网刷新方法、装置、存储介质及一体机设备
WO2014000299A1 (zh) 串口重定向处理方法、设备和系统
CN116401900B (zh) 一种软件仿真多系统间通信的方法和装置
CN116611375A (zh) 软硬件协同仿真平台及软硬件测试方法
CN106776186B (zh) 一种多cpu架构下的cpu运行状态调试方法和系统
CN111651177B (zh) 基于安卓平台的写号方法、设备及计算机可读介质
CN112559336B (zh) 自适应调试异构计算芯片的方法、装置、系统及主板芯片
CN114428702A (zh) 含有通用接口模块的信息物理测试系统
US7702764B1 (en) System and method for testing network protocols
CN113626087A (zh) 一种主机与bmc间的数据通信的方法、系统及装置
CN115509965A (zh) 存储器控制器与链接识别方法
KR100306596B1 (ko) 프로세서와 재설정가능 칩을 사용한 집적회로 에뮬레이터
CN112885403A (zh) 一种Flash控制器的功能测试方法、装置及设备
CN101876937B (zh) 一种模拟智能卡信息交互的方法
CN111371799A (zh) Mctp控制器收发数据的控制方法、装置及设备
KR101058993B1 (ko) 가상드라이브 방식의 스마트카드 테스트 장치 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant