写作背景
由于微软在PC/SC工作组中的领头羊地位,且PC/SC的一个关键组件——资源管理器已经在Microsoft Windows中得到了支持,PC/SC发展非常迅速,市面上出现了一系列的支持PC/SC的智能卡读写器。
近年来,自由开放的Linux各种开源代码包括操作系统正在不断地发展并得到了广泛的应用。因为开源PCSC-LITE套件实现了windows下同样的winscard api接口,在Linux操作系统下应用程序采用PCSC-LITE套件可以轻便地与smartcard和读卡器进行通讯,也从一定程度上方便了读卡器操作的移植。
目前PCSC-LITE套件广泛应用于Linux操作系统中。各知名智能卡读写器产商除了提供windows下的读卡器驱动,也提供可供PCSC-LITE使用的IFD-HANDLE驱动。也有不少读卡器直接支持CCID标准驱动。
对于不满足于仅仅调用 winscard api的读者,想深入了解PCSC-LITE框架的读者,甚至想在PCSC-LITE基础上,建立自己的读卡器应用框架的读者,您需要这样的一本书。
您想知道客户端是怎样和服务端通讯
您想知道服务端是如何和多个版本的IFDHANDLE驱动结合的
您想知道服务端是如何使用LIBUSB的
您想知道服务端是如何感知读卡器(usb接口,串口接口)的hotplug
您想知道目前版本的代码,存在哪些不足,存在哪些bug
...
特点
(1)基于PCSC-LITE1.5.5(截至完稿,这是最新版本)
(2)专注于客户端和服务器关键代码的详细分析。力求对PCSC-LITE框架的原理进行深入、透彻的讲解。当然了,关系到Linux编程基础的知识,也只能一带而过,不可能面面俱到。所以本书不适合于作为Linux入门的材料。
(3)前两部分,相对比较简单,为了使得读者能够轻松愉快地理解,采用了幽默的笔调。第三部分,相对比较复杂,采用了比较严肃的笔调。最后一部分,是著者的实际实验过程。嵌入式设备采用市面上流行的ARM-Friendly(S3c2440)套件。读卡器采用OmniKey CardMan 3121.
(4)本书不重在如何使用PCSC-LITE提供的API函数。而把重点放在这些函数实现的详细分析上,力求做到知其然更知其所以然。
主要内容
第1章首先对PCSC2.0规范做些介绍。PCSC2.0共有10份规范(11份文件)。本书重点讲解了7,1,6,5 这些和软件密切相关的文件。采用幽默的写法,让读者感受到规范的解说,也可以被写得不呆板,通俗易懂。
第2章,讲解pcsc-lite的客户端代码。重要的函数和结构体分析。覆盖所有的winscard api函数。这章,同样采用上章的写法。让读者轻松愉快地过渡到比较复杂的第3章。
第3章,讲解pcsc-lite的服务端代码。服务端的实现相对客户端的更加复杂。在那里,解说了更多的函数和结构。覆盖了所有的winscard api的服务端实现。采用了比较正规的写法,让读者能比较集中精力,阅读并思考这里的解析过程。
第4章,著者亲自经过多次反复实验得出的PCSC-LITE、LIBUSB、CCID在arm9上移植过程。