ccid 设备通讯(Linux)
来源:互联网 发布:js防水涂料最新配方 编辑:程序博客网 时间:2024/06/10 12:08
这里只介绍一下ccid Linux 开发过程中遇到的一些问题,仅供参考。
在网上搜了一些相关东西,按照下篇说的装了一下,libusb、ccid、pcsc-lite
Linux 平台下Libusb & ccid & pcsc-lite & OpenSC 通用安装步骤
遇到问题:
先开启一个终端执行 : /usr/local/sbin/pcscd -adf , 再开启一个终端:在pcps-lite/src/ 目录, 执行 ./testpcsc , 打印日志如下:
MUSCLE PC/SC Lite unitary test ProgramTHIS PROGRAM IS NOT DESIGNED AS A TESTING TOOL FOR END USERS!Do NOT use it unless you really know what you do.Testing SCardEstablishContext: Command successful.Testing SCardIsValidContext: Command successful.Testing SCardIsValidContext: Invalid handle. (don't panic)Testing SCardListReaderGroups: Command successful.Group 01: SCard$DefaultReadersTesting SCardFreeMemory: Command successful.Testing SCardListReaders: Cannot find a smart card reader. (don't panic)Testing SCardGetStatusChange Please insert a working reader:尝试解决方法一:
打开ccid-1.4.22/readers/supported_readers.txt 文件,添加 ccid设备的pid,vid
注:这个supported_readers.txt文件是用来生成/usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist 文件的。
1)用这种方法测试了一个其他公司的key,没有问题。
2)确定这把key也没有问题(在Windows平台能正常传输)
解决方法二:
在windows平台,用bus hound 抓包,对照 ccid协议分析抓到的包,用libusb 直接发命令,OK, 此方法解决我的问题了。
Device Phase Data Description Cmd.Phase.Ofs(rep)------ ----- ------------------------------------------------------------------------------------------------------ -------------------------------- ------------------ 25.2 OUT <span style="color:#33cc00;">63 00 00 00 00 00 0c 00 00 00</span> c......... 1.1.0 25.2 IN 81 00 00 00 00 00 0c 01 00 00 .......... 2.1.0 25.2 OUT <span style="color:#33cc00;">62 00 00 00 00 00 0d 02 00 00</span> b......... 3.1.0 25.2 IN 80 16 00 00 00 00 0d 00 00 00 3b ed 00 00 81 31 fe 45 03 41 01 88 88 01 04 08 18 10 25 14 00 91 ..........;....1.E.A........%... 4.1.0 25.2 OUT <span style="color:#33cc00;">61 07 00 00 00 00 0e 01 00 00 11 10 00 45 00 fe 00</span> a............E... 5.1.0 25.2 IN 82 07 00 00 00 00 0e 00 01 00 11 10 00 45 00 fe 00 .............E... 6.1.0 25.2 OUT <span style="color:#cc0000;">6f 05 00 00 00 00 0f 00 00 00 00 84 00 00 08</span> o.............. 7.1.0 25.2 IN 80 0a 00 00 00 00 0f 00 00 00 81 17 17 9f 5e 0e 85 aa 90 00 ..............^..... 8.1.0
这个包中其实绿色指令可能是发实际指令的准备工作吧,只有红色标注部分是我发的命令。
63、62、62、6f都啥含义,手册中都有详细的介绍,有兴趣的也可以对照一下ccid 手册分析一下上边的包。注:
本人第一次看到手册时(英文版),也是一头雾水,抓了一个包以后,再对照手册看,简单多了。
手册在csdn可以找到下载
0 0
- ccid 设备通讯(Linux)
- CCID 设备通讯 (Windows 平台)
- Linux设备程序设计(四)------Linux下串口通讯
- HID、SCSI、CCID设备的通信
- 设备通讯(1)----缓冲区方式(DO_BUFFERED_IO)
- Linux驱动中进程与设备通讯的机制
- CCID枚举
- ccid驱动
- 生成ccid
- Android/安卓开发之WIFI通讯(下)--与搜索到的设备进行通讯
- Linux设备模型(Linux设备驱动程序)
- Linux设备 (转)
- Linux 平台下Libusb & ccid & pcsc-lite & OpenSC 通用安装步骤
- Linux 平台下Libusb & ccid & pcsc-lite & OpenSC 通用安装步骤
- 针对华为通讯模块USB设备 android、linux 上位机集成的一些经验
- 基于Linux的USB 主/从设备之间通讯的三种方式
- 监视设备驱动通讯内容
- 【iOS】GKPeerPickerController蓝牙设备通讯
- org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.Mult
- github remove a repository
- UIWebView使用配置进度条
- 牛客网刷题之替换空格
- 28 自定义View侧滑栏
- ccid 设备通讯(Linux)
- LeetCode(3)
- python使用xlrd模块读写Excel文件的方法
- [POJ 1588] Gauss Fibonacci (矩阵快速幂)
- Java通过URI和HttpClient发送请求
- 【C++面向对象】C++中访问控制符限定的是类而非对象
- linux操作系统自动化安装之自动化修改BIOS
- Java二维码
- 全向和定向天线区别,何为天线增益