﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-My C++-随笔分类-SmartCard</title><link>http://www.cppblog.com/finehai/category/11215.html</link><description>当时只道是寻常~</description><language>zh-cn</language><lastBuildDate>Tue, 21 Jul 2009 09:00:20 GMT</lastBuildDate><pubDate>Tue, 21 Jul 2009 09:00:20 GMT</pubDate><ttl>60</ttl><item><title>[原创]Linux下pc/sc接口的实现</title><link>http://www.cppblog.com/finehai/archive/2009/07/17/90332.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Fri, 17 Jul 2009 05:36:00 GMT</pubDate><guid>http://www.cppblog.com/finehai/archive/2009/07/17/90332.html</guid><wfw:comment>http://www.cppblog.com/finehai/comments/90332.html</wfw:comment><comments>http://www.cppblog.com/finehai/archive/2009/07/17/90332.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/finehai/comments/commentRss/90332.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/finehai/services/trackbacks/90332.html</trackback:ping><description><![CDATA[&nbsp;
<p><strong><span>运行环境</span></strong><span>：</span></p>
<ul>
    <li><span>内核版本：</span><st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on"><span>2.6.23</span></st1:chsdate><span>.1-42.fc8</span>
    <li><span>OS</span><span>：</span><span>fedora8</span><span>、</span><span>redhat9</span>
    <li><span>平台：</span><span>PC</span> </li>
</ul>
<p><strong><span>实现步骤：</span></strong><strong></strong></p>
<p><span><span>1、</span></span><span>安装</span><span>libusb(</span><span>此用版本为</span><st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on"><span>0.1.12</span></st1:chsdate><span>)</span><span>。默认生成在</span><span>/usr/local/lib</span><span>目录下。<br><br></span></p>
<p><span><span>2、</span></span><span>安装</span><span>pcsc-lite</span><span>，它是独立于设备的</span><span>API</span><span>，基于</span><span>pc/sc</span><span>规范，可以通过这些接口访问智能卡。在此用的是版本为</span><span>pcsc-lite-1.4.99</span><span>，安装步骤</span></p>
<ul>
    <li><span>./configure</span><span>（配置编译环境，建立</span><span>Makefile</span><span>）</span>
    <li><span>Make</span><span>（编译生成</span><span>libpcsclite.a</span><span>和</span><span>libpcsclite.so</span><span>）</span>
    <li><span>Make install</span><span>（将生成的文件放在相关文件下）</span> </li>
</ul>
<p><span>Make</span><span>生成的</span><span>.a</span><span>和</span><span>.so</span><span>文件默认在</span><span>/usr/local/lib</span><span>下</span><span>, </span><span>运行</span><span>file *</span><span>，可以看到：<br><br><img height=144 alt="" src="http://www.cppblog.com/images/cppblog_com/finehai/pcsc1.JPG" width=729 border=0><br><br></p>
</span>
<p><span><span>3、</span></span><span>检查</span><span>/usr/lib/pcsc/</span><span>目录下是否有读卡器驱动</span><span>,</span><span>若没有</span><span>,</span><span>安装驱动</span><span>ccid(</span><span>此版本为</span><st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on"><span>1.3.6</span></st1:chsdate><span>)</span><span>。默认生成在</span><span>/usr/local/pcsc</span><span>目录下<br><br></span></p>
<p><span><span>4、</span></span><span>安装完成后，可以运行</span><span>src/</span><span>目录下的</span><span>testpcsc</span><span>程序测试</span><span>PC-linux</span><span>平台下与智能卡是否可以通讯。注意要先运行</span><span>pcscd </span><span>程序，然后再运行</span><span>./testpcsc</span><span>。</span></p>
<p><span>编译测试程序如果出错，则须将</span><span>/usr/locate/lib </span><span>加入到</span><span>/etc/ld.so.conf</span><span>文件中，别忘了</span><span>ldconfig.</span></p>
<p><span>测试程序能够得到正确的结果，如图：</span></p>
<p>&nbsp;<img height=373 alt="" src="http://www.cppblog.com/images/cppblog_com/finehai/pcsc2.JPG" width=692 border=0></p>
<p><span><span><span><br>5、将</span></span>该测试程序移植到</span><span>arm-linux</span><span>平台下运行，步骤如下：</span></p>
<ul>
    <li><span>CC=arm-linux-gcc /configure &#8211;host=arm-linux &#8211;disable-libusb</span><span>（配置编译环境，建立</span><span>Makefile.</span><span>）</span>
    <li><span>Make</span><span>（编译生成</span><span>libpcsclite.a</span><span>和</span><span>libpcsclite.so</span><span>）</span>
    <li><span>Make install</span><span>（将生成的文件放在相关文件下）</span> </li>
</ul>
<p><span>CC</span><span>是定义编译工具，默认为</span><span>gcc, </span><span>在此要保证你的系统中装有</span><span>arm-linux-gcc</span><span>交叉编译环境；</span><span>--host</span><span>定义编译程序的运行平台，默认为</span><span>PC-linux,</span><span>在此我们要在</span><span>arm</span><span>下运行，所以改为</span><span>arm-linux</span><span>；由于系统中没有</span><span>libusb</span><span>故用</span><span>disable.</span><span>若有此库可不写。<br><br></p>
</span>
<p><span>编译生成</span><span>pcsclite</span><span>的动态库</span><span>(.so)</span><span>和静态库</span><span>(.a)</span><span>同样在</span><span>/usr/local/lib</span><span>下可以找到，此时运行命令</span><span>file *</span><span>，可以看到：<br><br><img height=146 alt="" src="http://www.cppblog.com/images/cppblog_com/finehai/pcsc3.JPG" width=728 border=0><br><br><br>附：<br>PCSC卡在linux下的驱动(PCSC-Lite, CCID driver)：<a href="http://pcsclite.alioth.debian.org/"><u><font color=#810081>http://pcsclite.alioth.debian.org/</font></u></a><a href="http://www.musclecard.com/sourcedrivers.html"></a><br>libusb库下载地址：<a href="http://libusb.wiki.sourceforge.net/"><u><font color=#810081>http://libusb.wiki.sourceforge.net/</font></u></a> </span></p>
<img src ="http://www.cppblog.com/finehai/aggbug/90332.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/finehai/" target="_blank">Bluesea</a> 2009-07-17 13:36 <a href="http://www.cppblog.com/finehai/archive/2009/07/17/90332.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pcsc卡常用网站</title><link>http://www.cppblog.com/finehai/archive/2009/07/17/90328.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Fri, 17 Jul 2009 05:10:00 GMT</pubDate><guid>http://www.cppblog.com/finehai/archive/2009/07/17/90328.html</guid><wfw:comment>http://www.cppblog.com/finehai/comments/90328.html</wfw:comment><comments>http://www.cppblog.com/finehai/archive/2009/07/17/90328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/finehai/comments/commentRss/90328.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/finehai/services/trackbacks/90328.html</trackback:ping><description><![CDATA[1、PCSC卡接口用法：<a href="http://pcsclite.alioth.debian.org/pcsc-lite/">http://pcsclite.alioth.debian.org/pcsc-lite/</a><br>2、PCSC卡在linux下的驱动(PCSC-Lite, CCID driver)：<a href="http://pcsclite.alioth.debian.org/">http://pcsclite.alioth.debian.org/</a><a href="http://www.musclecard.com/sourcedrivers.html"></a><br>3、libusb库下载地址：<a href="http://libusb.wiki.sourceforge.net/">http://libusb.wiki.sourceforge.net/</a> <br>4、智能卡相关：<a href="http://www.linuxnet.com/index.html">http://www.linuxnet.com/index.html</a><a href="http://www.linuxnet.com/software.html"></a> <br>5、Windows Smart Card Devices: http://www.microsoft.com/whdc/device/input/smartcard/default.mspx&nbsp;
<img src ="http://www.cppblog.com/finehai/aggbug/90328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/finehai/" target="_blank">Bluesea</a> 2009-07-17 13:10 <a href="http://www.cppblog.com/finehai/archive/2009/07/17/90328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]VC中PC/SC智能卡接口的编程</title><link>http://www.cppblog.com/finehai/archive/2009/07/17/90327.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Fri, 17 Jul 2009 04:53:00 GMT</pubDate><guid>http://www.cppblog.com/finehai/archive/2009/07/17/90327.html</guid><wfw:comment>http://www.cppblog.com/finehai/comments/90327.html</wfw:comment><comments>http://www.cppblog.com/finehai/archive/2009/07/17/90327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/finehai/comments/commentRss/90327.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/finehai/services/trackbacks/90327.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文介绍了如何在VC中通过PC/SC接口实现对智能卡读写器的操作，并给出了详细的例子代码。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/finehai/archive/2009/07/17/90327.html'>阅读全文</a><img src ="http://www.cppblog.com/finehai/aggbug/90327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/finehai/" target="_blank">Bluesea</a> 2009-07-17 12:53 <a href="http://www.cppblog.com/finehai/archive/2009/07/17/90327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>