智能卡应用程序的开发

合集下载

CSP在基于智能卡的移动终端中的开发与应用

CSP在基于智能卡的移动终端中的开发与应用
CSP在基于智能卡的移动终端中的开发与应用
1 引言 由于移动公网的广泛发展和手机PDA的大力普及,移动终端作为固网上业务服务器的访问接入终端也变得越来越常见。然而,移动终端通过基于GPRS/CDMA的移动公网接入业务服务器的过程存在着较大的安全风险。在没有执行任何安全保护措施的情况下,移动终端就与业务服务器进行数据传输,很容易导致双方传输的数据被别有用心的人截取或者篡改,如果这些数据涉及到商业敏感信息,这将对双方的利益带来巨大的损失。并且,移动终端虽然体积小巧,方便携带,也容易丢失和被盗,再加上设备的非授权使用,授权用户的不合理或者恶意的行为,这些全都会带来安全威胁。因而,寻找给移动终端和业务服务器的访问过程增加安全性的解决方案是人们追求的目标。IPSec VPN技术是目前普遍使用的方法,先在公共网络上建立一个私有隧道,然后才在这个隧道上进行双方的数据传输。这样,安全性确实会得到一定的提高,但是如果没有智能卡的帮助,安全性还是会大打折扣。因此,针对这种情况,设计了一个基于智能卡的移动IPSec VPN安全接入终端系统,本文重点介绍该系统中CSP的开发。 2 相关背景 2.1智能卡与PC/SC规范 智能卡是一张内含嵌入式集成电路芯片的信用卡般大小的塑料卡,具有储存信息量大,数ቤተ መጻሕፍቲ ባይዱ保密性好,抗干扰能力强,储存可靠,读写设备简单,使用灵活,操作速度快,脱机工作能力强,易于携带等特点。本系统所使用的智能卡是一张特制的内含有交换密钥对,签名密钥对和证书用以提供加解密、认证等服务的电子卡。 PC/SC规范是一套为集成电路卡(ICC)与个人计算机系统设计进行交互的规范,能够让智能卡方便地访问WindoW平台。其主要优点就是让应用程序不必为了与智能卡通信而去了解智能卡读卡器的细节,应用程序通过PC/SC规范和智能卡读卡器通信,后者再通过ISO7816与智能卡进行通信来获取智能卡提供的服务,其传输的包结构是TPDU。 2.2 Crypto API体系结构与CSP Crypto API是微软提供的一套公共接口,包含了一系列的函数,为应用程序提供加解密、数字签名、哈希等安全服务,而应用程序不必关心其具体实现。不同的供应商可以开发独立的加密模块,这些模块成为加密服务提供者(Cryptographic Service Provider CSP),完成密钥生成/交换、加解密、数字签名、认证等服务的真正模块。微软默认的CSP是RSA Based Provider,使用RSA公司的加密算法。一个系统中可以加载多个CSP模块,它们相互独立。应用程序可以使用任意一个CSP模块,而不必关心它的具体实现,每个CSP都对Crypto API进行不同的实现。 Crypto API的体系结构。

Mifare1 S50 开发资料

Mifare1 S50 开发资料

文军维修 Mifare1卡及其读写器ASIC 模块之“密码操作”研究与其应用程序开发作者: 张敏2001-8-4关键字: 非接触式智能卡 ASIC 模块1、序言 非接触式智能卡已经广泛地应用于各类门禁控制系统,公共交通支付系统,e -purse 系统,高速公路不停车收费系统,IBMS (智能大楼管理系统),海关过境身份识别,以及医疗保险系统等等。

非接触式智能卡以其高度安全保密性,通信高速性,使用方便性,成本日渐低廉等而受到广泛使用,给我们的生活质量带来了很大的提高。

因此,如何认识、理解智能卡,特别是带有非常神秘色彩的非接触式智能卡,已引起很多智能卡的使用者,包括智能卡专业研发的IT 科研人员的极大的兴趣和爱好。

笔者在此很愿意将自己多年来在智能卡(接触式智能卡及非接触式智能卡)方面的研究及其软硬件应用开发的经验与大家一同交流和分享,以取得我国金卡工程事业的更进一步的发展。

在此,笔者将以符合ISO/IEC14443TYPEA 标准的Mifare1S50系列非接触式智能卡及其读写设备专用IC (ASIC )RC150/170模块为对象,与大家一起就“关于非接触式智能卡及其读写器ASIC 模块之‘密码操作’”作一些研究与探讨,并将用标准的Intel -51系列微处理器汇编语言进行实际的应用程序的开发。

在笔者曾设计和开发的众多智能卡项目中,本文所给出的应用程序都有着良好的运行效果。

2、非接触式智能卡及其读写器ASIC 模块RC150/170 Mifare1S50非接触式智能卡片有着16个Sector(扇区);每个Sector 包含4个Block (块);每个Block 具有16个byte 的存储容量。

Sector 被定义为Sector0至Sector15;Block 被分为Block0至Block3;整个Mifare1S50非接触式智能卡共有64个Block 。

Sector0中的Block0记录了该张智能卡的序列号(SerialNumber )以及生产厂商的标志信息等,这些信息已在卡片出厂时固化,不能更改。

智能卡解决方案

智能卡解决方案

智能卡解决方案
《智能卡解决方案:提升生活便利的科技创新》
在现代信息社会,智能卡扮演着越来越重要的角色,它不仅是我们实现线上支付、身份识别和信息存储的重要工具,还可以在各行各业中发挥着重要的作用。

但与此同时,智能卡也面临着诸多安全和便利性的挑战,因此需要不断创新和改进来提升其性能和功能。

智能卡解决方案是针对智能卡领域的一种技术创新和解决方案。

通过不断地研究和发展,智能卡解决方案已经实现了一系列的创新,比如使用先进的密码学技术来加强智能卡的安全性,采用接触式和非接触式技术来提高智能卡的便利性,以及结合物联网技术和大数据分析技术来实现更加智能化的应用。

在金融领域,智能卡解决方案可以帮助银行和金融机构提高支付安全性和便利性,减少欺诈和盗刷风险,提升用户体验。

在医疗领域,智能卡解决方案可以用于个人健康档案的存储和管理,提高就医和用药的便利性。

在城市管理领域,智能卡解决方案可以应用于公共交通、门禁系统和社会福利发放等方面,提高城市管理的智能化水平。

因此,智能卡解决方案的不断创新和应用,将会为我们的生活和工作带来更多的便利和安全。

随着科技的不断发展,相信智能卡解决方案会为我们的生活和社会带来更多的惊喜和改变。

智能卡操作系统(COS)仿真器系统设计与实现

智能卡操作系统(COS)仿真器系统设计与实现

万方数据 万方数据(e)RAM芯片实现断点存储器,支持任意个数的断点设置∞为了方便IC}COS,在系统中集成了CPUIc卡读写器电路2、集成开发调试软件系统(IDE)设计开发实际卜.,运行在PC机端的COS集成开发调试软件系统是整个仿真器系统的另一个核心组成部分。

由于COS程序的开发者是通过使用该IDE人机界面实现、完成COS程序开发、调试的各个过程,包括COS程序源代码编写、编辑;源程序编译;程序代码下载;运行、跟踪、调试等等,因此,IDE软件也是整个仿真器系统的灵魂。

人机界面是否友好、各种功能是否强大、灵活、模块化设计程度是否完善等直接影响到系统的实用性、可操作性和可维护性。

可见,整体设计方案的前詹性、合理性至为关键。

IDE程序人机界面有以下几个部分组成:(1)命令菜单区(2)COS程序源代码编写、编辑窗n(3)COS程序源代码编译窗口(4)COS程序调试窗口:包括源程序代码行显示区,寄存器显示区,RAM单元显示医,程序计数器(PC)显示区以及运行状态昆示区。

IDE人机界面程序编程语言选用MicrosoftVi~sualc++5.0以上版本。

以下是实际系统的几个主要显示画面。

图2IDE系统主界面http://wwwcicmagcom图3IDE系统主界面(升级版)图4COS程序源代码编辑窗口图5组织源代码文件并准备编译窗口3、IDE与仿真器板之间通信协议的设计IDE与仿真器板之间的通信采取请求、应答的 万方数据L一企业与产品烹曼惹熙山U图6编译器编译输出信息窗口一2图6:JDE调试器窗口模式,即每一个操作命令都是由IDE发送一个请求或命令,仿真器板收到相应的请求或命令后即执行相应的操作,然后将执行结果回送给IDE。

双方之间的通信协议定义如下:(1)IDE请求或命令包SohCmdData_HData_LDataChkSum(2)仿真器板应答包AckCmdResponse_HResponse_LResponse(3)校验和ChkSum的计算ChkSum为单字节,其数值为其前面的、本数据包内所有字节的累加和(不考虑进位情况)。

CSP在基于智能卡的移动终端中的开发与应用

CSP在基于智能卡的移动终端中的开发与应用
孽j
~ |
0 |
l l l
0_ 0 l _
l l 0
_ i


l 麓 毫; 誊
| l 毫 0 l | 誊

C P在基于智能卡的移动终端中的开发与应用 S
聂曼 ,谭 成 翔 ,汪 海航
( 同济 大学 电子 与信息 工程 学院 ,上海 2 10 ) 0 84
Ab ta t IS c V N h s eo a rv l t mehd f i ra i n t r sc r y, s c i s ay 0 s a d cn fe hg s f t sr c : P e P a b cme pe ae to o n e s g e wok eu i n c n t i e t e s t ue n a o f r ih a e y. n i C nan g mbd e it ga e i ut h s S r C r , a b a a rdt ad, i n lcrnc ad o tii e e dd ne rt cr i n c c i , ma t ad p s i s cei g c r s ee toi a c r whc ic d s e p i a d e t ia e. i nl e k y ar n c ric t h u s f As nr p i o ea in s oe ni a d h piae e cy to pr t i n o d n is e n te r t ke d e n t ed o e x otd ,h scr y al n rae ra l T e o i t n f d v y os o ne t b e p re te e ui c l ce s g ety. h cmbn i o t i ao IS c P a d ma t r i nt r h s en pld nra i l wi l S r C r a d ot r b sd n S c n f e v r u srie i P e V N n S r Cad n ewok a b e a pe ice s gy d y. mat ad n sf wae ae o C P a of r a i s evcs n i n e o nt r sc r y id ho g Mirsf s y t AP . T i rie n rd c s h d s n n d v l met rc d r o S a t ad ae o]C e wok e ui fe tru h co ot Cr po t l I hs t l i o ue te ei a d e e p n po eue f m r C r b sd a c t g o r SP i h b c rud f n e akg on o mo i scr tr nl y t m e al l t bl eue emia e s se d tidy. e Ke wor y ds: S r C r C P; C y t A ; Moi scrt ma t a d; S r p o PI bl e uiy e

智能卡应用系统整体解决方案

智能卡应用系统整体解决方案

智能卡应用系统整体解决方案一、智能卡的发行智能卡的发行是整个系统的基础,需要包括智能卡的制卡、个性化以及发行等环节。

具体步骤如下:1.选择合适的智能卡芯片和封装,根据需求定制卡片的功能和规格;2.制卡:利用智能卡制卡设备将芯片和封装进行组装;3.个性化:根据不同用户的需求,将用户相关信息写入智能卡中,如身份信息、账户信息等;4.发行:将已个性化的智能卡分发给用户,确保用户能够正常使用。

二、智能卡的管理智能卡的管理包括对智能卡的使用情况进行监控、维护和更新等操作。

具体步骤如下:1.注册:将智能卡的信息录入系统中,建立智能卡与用户之间的关联;2.监控:实时监控智能卡的使用情况,如交易记录、充值记录等;3.维护:定期对智能卡进行检测和维护,确保卡片的正常使用;4.更新:当有新功能或者新需求时,需要对智能卡进行更新,包括软件更新、功能扩展等。

三、智能卡的应用智能卡的应用是整个系统的核心部分,不同领域的应用有不同的实现方式,以下以智能卡在门禁系统中的应用为例进行说明:1.门禁管理:通过智能卡进行门禁验证,实现对人员进出门禁区域的控制和管理;2.人员身份识别:通过智能卡中的身份信息进行人员身份识别,确保只有授权人员可以进入;3.统计和报表:智能卡应用系统可以记录和统计人员进出门禁区域的情况,并生成相应的报表;4.报警管理:智能卡应用系统可以与报警系统进行联动,实现异常事件的报警。

以上是智能卡应用系统整体解决方案的大致内容,不同领域的智能卡应用系统可能会有差异,但整体的流程和原理是相通的。

随着智能卡技术的不断发展,智能卡应用系统将在各个领域得到更广泛的应用和推广。

智能卡应用系统整体解决方案

智能卡应用系统整体解决方案

企业一卡通系统整体解决方案目录第一章项目概述01。

1.项目背景01。

2。

总体需求01。

3.建设内容01。

4.系统特点1第二章企业一卡通系统总体设计32。

1.设计依据32.2.规划原则32。

3.总体设计思想42.4.体系结构42。

5。

“卡通、库通、网通"52.6。

系统密钥体系的设计62.7。

员工卡片选型与扇区规划设计6 2.8。

系统客户端部署方式设计72。

9。

系统安全性设计82。

10。

系统可靠性设计82。

11.系统实用性设计82。

12。

系统扩展性8第三章系统平台93。

1。

数据中心93。

1.1. 概述93.1。

2。

设计方案93.1.3。

系统结构图93.1.4。

系统功能103.2。

系统网络103.2.1. 系统简介103。

2。

2. 设计方案103.2。

3。

网络安全的设计10第四章智能卡应用系统114.1。

5卡务管理子系统114.1.1。

系统简介114.1。

2. 设计方案114.1。

3。

系统组成114.1。

4。

主要功能114。

2。

门禁管理子系统124.2.1. 系统简介124.2。

2. 设计方案124.2.3。

与视频监控系统的联动124.2。

4. 与消防系统的联动134.2.5。

布防、撤防功能的实现134.2。

6。

与IBMS系统的接口144.2。

7。

电子地图功能的实现144.2.8。

系统组成144。

2.9。

主要功能154.2。

10。

系统特点164.3.通道管理子系统174.3。

1. 系统简介174.3。

2. 设计方案174.3。

3。

系统组成174.3。

4. 主要功能184。

3.5。

系统特点194。

4.考勤管理子系统194。

4.1。

系统简介194。

4.2. 设计方案194。

4。

3。

系统组成194。

4。

4。

主要功能204。

4.5。

系统特点214。

5。

访客管理子系统224.5。

1。

概述224。

5。

2。

设计方案224.5。

3。

关于访客证件类型规划224。

5.4. 关于访客出入权限管理建议方案224.5。

Java智能卡技术研究

Java智能卡技术研究

Java智能卡技术研究摘要:Java智能卡技术制订了一种安全、便捷且多功能的智能卡平台规范,已成为智能卡的主流发展趋势。

随着我国信息化建设的不断推进和信息技术的持续发展,Java卡已在身份认证、电子支付和信息安全领域得到了广泛的应用。

关键词:Java 智能卡技术研究Java智能卡,顾名思义就是一种能运行Java语言程序的智能卡。

其实质是,在资源非常有限的智能卡环境中,实现对Java语言部分子集的支持,从而实现能够在智能卡中运行利用这部分Java语言子集开发的应用程序的目的。

因此,可以说Java智能卡是Java嵌入到智能卡中的一种新的应用。

Java卡的出现,使原有嵌入式设备只能实现单一或有限应用的局面得以突破,使得真正意义上的一卡多应用成为现实。

1 Java智能卡的基本概念Java语言的最大特点是平台无关性,即在不同的系统平台上,都可以使用相同的代码。

Java语言的这一特性使得应用程序的移植变得更加容易。

Java智能卡又称为Java Card,Java智能卡技术的原理是在智能卡硬件系统上构建一套软件平台。

该软件平台需要实现Java程序的下载、安装以及执行功能。

其中Java程序的下载和安装功能由Java 智能卡的运行环境实现,而Java智能卡程序的执行则需要Java智能卡的运行环境、卡内虚拟机以及Java智能卡基础类库共同协调完成。

因此,可以说Java智能卡实际上是智能卡硬件系统和提供解释执行Java应用程序的软件系统的有机结合体。

2 Java智能卡的基本结构及原理2.1 从系统结构上看,Java智能卡主要由Java Applet应用层、Java 智能卡软件平台层,以及智能卡本地系统层1)Java Applet应用层。

Java智能卡规范,将运行于Java智能卡中的应用服务程序称为Java Applet。

该层相当于Java智能卡应用系统中的应用服务层。

一个Java智能卡中,可以根据需要下载多个应用各不相同的Java Applet应用程序,从而实现一卡多用的功能,例如,可以在一个Java智能卡中,下载用于实现地铁、汽车、网银、水费、气费等代收功能的Java Applet应用程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows系统提供了大量的API来方便的进行智能卡应用程序的开发,通过它们我们可以直接控制智能卡读卡器对智能卡进行操作,也可以与智能卡建立直接的虚拟连接而不用考虑智能卡读卡器。

智能卡应用程序开发的一般流程是:1)建立连接(使用函数SCardEstablishContext和SCardConnect,SCardReconnect);2)开始事务处理(使用函数SCardBeginTransaction);3)进行事务处理(使用函数SCardTransmit);4)结束事务处理(使用函数SCardEndTransaction);5)断开连接(使用函数SCardDisconnect和SCardReleaseContext)。

下面就具体看看各个函数的功能和用法吧!1)SCardEstablishContext函数用于建立进行设备数据库操作的资源管理器上下文:LONG WINAPI SCardEstablishContext(__in DWORD dwScope, //资源管理器上下文的范围,取值如下://SCARD_SCOPE_USER---数据库操作在用户域中//SCARD_SCOPE_SYSTEM---数据库操作在系统域中,调用的应用程序//必须具有对任何数据库操作的权限__in LPCVOID pvReserved1, //保留值,必须设为NULL__in LPCVOID pvReserved2, //保留值,必须设为NULL__out LPSCARDCONTEXT phContext //建立的资源管理器上下文句柄);返回值:成功时返回SCARD_S_SUCCESS;失败时返回智能卡特定错误码。

函数返回的资源管理器上下文句柄可以被对设备数据库进行查询和管理的函数使用。

如果一个客户试图在远程会话中实现智能卡操作,例如运行在终端服务器上的客户会话,而且客户会话所在的操作系统不支持智能卡重定向,则函数SCardEstablishContext返回ERROR_BROKEN_PIPE。

下面的代码是建立资源管理器上下文的例子:SCARDCONTEXT hSC;LONG lReturn;//Establish the contextlReturn = SCardEstablishContext(SCARD_SCOPE_USER,NULL, NULL, &hSC);if(SCARD_S_SUCCESS != lReturn)printf("Failed SCardEstablishContext/n");else{//Use the context as needed, when done,//free the context by calling SCardReleaseContext}2)SCardConnect函数利用特定资源管理器上下文,在应用程序与包含在特定读卡器中的智能卡之间建立一条连接:LONG WINAPI SCardConnect(__in SCARDCONTEXT hContext, //资源管理器上下文句柄__in LPCTSTR szReader, //包含目标智能卡的读写器名字__in DWORD dwShareMode, //标志其他应用程序是否可以与该智能卡建立连接,取值如下://SCARD_SHARE_SHARED---与其他应用程序共享该智能卡//SCARD_SHARE_EXCLUSIVE---独占该智能卡//SCARD_SHARE_DIRECT---本应用程序将读写器作为私有使用,并且直接//控制它,其他应用程序没有权限使用该读写器__in DWORD dwPreferredProtocols, //可接受协议的位掩码,可是如下的组合://SCARD_PROTOCOL_T0--- T=0是可接受协议//SCARD_PROTOCOL_T1--- T=0是可接受协议//0--- 该参数只有当dwShareMode是SCARD_SHARE_DIRECT时才能为0;//这种情况下,驱动程序不会处理任何协议协商,直到将控制指令//IOCTL_SMARTCARD_SET_PROTOCOL发送给SCardControl__out LPSCARDHANDLE phCard, //标识与特定读卡器中智能卡连接的句柄__out LPDWORD pdwActiveProtocol //返回已建立的活动协议,取值如下://SCARD_PROTOCOL_T0--- T=0是活动协议;//SCARD_PROTOCOL_T1--- T=1是活动协议;//SCARD_PROTOCOL_UNDEFINED---SCARD_SHARE_DIRECT标志被//被设置,因此没有任何协议协商发生;这时读卡器中可能没有智能卡);返回值:成功时返回SCARD_S_SUCCESS;失败时返回智能卡错误码。

函数SCardConnect是智能卡和读卡器访问函数,下面的代码创建和读卡器的连接,代码中假定hContext 是由函数SCardEstablishContext返回的有效的资源上下文句柄:SCARDHANDLE hCardHandle;LONG lReturn;DWORD dwAP;lReturn = SCardConnect(hContext, (LPCTSTR)"Rainbow Technologies SCR3531 0",SCARD_SHARE_SHARED,SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,&hCardHandle, &dwAP);if(SCARD_S_SUCCESS != lReturn){printf("Failed SCardConnect/n");return;}//Use the connection. Display the active protocolswitch(dwAP){case SCARD_PROTOCOL_T0:printf("Active protocol T0/n");break;case SCARD_PROTOCOL_T1:printf("Active protocol T1/n");break;case SCARD_PROTOCOL_UNDEFINED:default:printf("Active protocol unnegotiated or unknown/n");break;}//Remember to disconnect(by calling SCardDisconnect)3)SCardBeginTransaction函数在开始执行前,先等待其他所有事务完成。

当该事务开始后,其他应用程序不允许在事务期间访问智能卡:LONG WINAPI SCardBeginTransaction(__in SCARDHANDLE hCard //调用SCardConnect所获得的连接句柄);返回值:成功时返回SCARD_S_SUCCESS;失败时返回智能卡错误代码。

注意:即使另一个进程或线程重置了智能卡,本函数仍然返回SCARD_S_SUCCESS,要确定智能卡是否被重置,可以在该函数调用后立即调用SCardStatus函数。

SCardBeginTransaction函数同样是智能卡和读卡器访问函数。

下面的代码片段展示了开始智能卡事务:lReturn = SCardBeginTransaction( hCard );if ( SCARD_S_SUCCESS != lReturn )printf("Failed SCardBeginTransaction/n");4)SCardTransmit函数用来发送服务请求给智能卡,并接收从智能卡返回的数据:LONG WINAPI SCardTransmit(__in SCARDHANDLE hCard, //由函数SCardConnect返回的连接句柄__in LPCSCARD_IO_REQUEST pioSendPci, //指向指令的协议头结构的指针//一般使用系统定义的结构:// SCARD_PCI_T0(T=0协议);// SCARD_PCI_T1(T=1协议);// SCARD_PCI_RAW(原始协议)__in LPCBYTE pbSendBuffer, //要发送到智能卡的数据的指针__in DWORD cbSendLength, //pbSendBuffer的字节长度__inout_opt LPSCARD_IO_REQUEST pioRecvPci, //指向指令的协议头结构的指针,该参数当没有//协议控制信息PCI返回时可设为NULL__out LPBYTE pbRecvBuffer, //从智能卡返回的数据的指针__inout LPDWORD pcbRecvLength //pbRecvBuffer的字节长度);返回值:成功时返回SCARD_S_SUCCESS;失败时返回智能卡错误代码。

SCARD_IO_REQUEST结构开启一个协议控制信息结构,任何特定协议信息立即跟在这个结构之后。

该结构的总长度必须根据底层硬件结构字节长度进行对齐。

例如,在Win32中,任何PCI(Protocol Control Information)信息的长度一定是4字节的整数倍,即对齐到32位边界。

结构定义如下:typedef struct {DWORD dwProtocol; //使用的协议DWORD cbPciLength; //本结构的字节长度(加上任何跟随的特定PCI信息长度)} SCARD_IO_REQUEST;使用函数SCardTransmit的代码片段:// Transmit the request.// lReturn is of type LONG.// hCardHandle was set by a previous call to SCardConnect.// pbSend points to the buffer of bytes to send.// dwSend is the DWORD value for the number of bytes to send.// pbRecv points to the buffer for returned bytes.// dwRecv is the DWORD value for the number of returned bytes.lReturn = SCardTransmit(hCardHandle,SCARD_PCI_T0,pbSend,dwSend,NULL,pbRecv,&dwRecv );if ( SCARD_S_SUCCESS != lReturn ){printf("Failed SCardTransmit/n");exit(1); // or other appropriate error action}5)SCardEndTransaction函数完成先前声明的一个事务,并允许其他应用程序恢复与智能卡的交互:LONG WINAPI SCardEndTransaction(__in SCARDHANDLE hCard, //由函数SCardConnect返回的连接句柄__in DWORD dwDisposition //断开连接时对智能卡的操作,取值如下://SCARD_EJECT_CARD---弹出智能卡;//SCARD_LEAVE_CARD---不做任何操作//SCARD_RESET_CARD---复位智能卡//SCARD_UNPOWER_CARD---给智能卡掉电);返回值:成功时返回SCARD_S_SUCCESS;失败时返回智能卡错误代码,例如:SCARD_W_RESET_CARD---事务被释放,但是将来任何和智能卡的通信都需要调用SCardReconnect函数。

相关文档
最新文档