基于PC/SC的智能卡访问及11.11指令封装类

代码下载:http://download.csdn.net/source/2364046

    WIN2000后,微软正式提供对PC/SC智能卡访问的库支持 winscard(WIN98也可以通过安装系统补丁支持),使得用系统API访问不同的读卡器成为可能,这套约定就称为PC/SC,其中包含了对于读卡器的驱动约定和上层API。本人不做读卡器,只是用,所以本文也主要针对的是API的使用和封装。

    所有支持PC/SC驱动的读卡器,都会产生一个系统唯一的名字(多读卡器的时候,跟序号做区分)。然后产生卡片操作上下文,用SCardConnect进行连接,SCardTransmit进行APDU的传送。其中APDU的传送符合ISO7816-4的标准,并不关注ISO7816-3的传输层协议(传输层由驱动完成)。

    附件的API使用例程:

CPCSC card;

 

card.Init();

 

char readers[512];

if(card.ListReaders(readers))

{

    //list readers

    //select and connect reader

    card.ConnectCard(reader);

}

 

//send apdu

card.SELECT(0x3F00);

char response[256];

card.GET_RESPONSE(response,card.m_bySW2);

cout << "MF type" << CPCSC::RS_GetFileType(response);

//.....

 

card.DisConnectCard();

card.Eject();

 

   用监护线程监控卡片插入和拔出的动作。

void Thread_Func()

{

    while(card.GetReaderStatusChange(300) != SCARD_E_TIMEOUT)

    {

        if(card.IsConnc())

        {

             //card insert, get atr

             BYTE atr[200];

             card.GetAtr(atr,200);

            //...

        }

        else

        {

             //card plug

             //......

        }

    }

}

   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值