SmartCard学习之libpcsclite

ubuntu上基于pcscd和libpcsclite访问智能卡的eclipse工程 ubuntu上基于pcsclite库的参考eclipse cdt工程。在ubuntu上配置pcsc及读卡器请参阅本人的csdn博客。 立即下载

下面这一段代码,不是在所有卡片上都能成功运行。
写出来的意义是,让大家对于智能卡操作的流程有个大致了解,大致熟悉一下相关函数怎么用。
具体API文档,微软介绍的很清楚,网上也很多,不赘述。

基本上流程就是:

基本流程

安装的库基本上就那么几样东西:

libccid pcscd libdbus-1-dev libpcsclite-dev
差不多就这几个吧,不够的就再查查,哈哈哈哈

make命令大致如下:

gcc -g -o smartcard smartcard.cpp -lpcsclite -I /usr/include/PCSC/


/// File Name: smartcard.cpp

#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include "pcsclite.h"
#include "winscard.h"
#include "reader.h"

int main(void) {
    SCARDCONTEXT m_hContext;
    SCARDHANDLE  m_hCard;
    SCARD_IO_REQUEST io;
    char pmszReaders[512];
//  BYTE CAPDU[] = {0x00,0x84,0x00,0x00,0x08};
//  BYTE CAPDU[] = {0xFF,0xA4,0x00,0x00,0x01,0x06};
    BYTE CAPDU_0[] = {0x00,0xA4,0x00,0x00,0x02,0x3F,0x00};  //get main folder 0x3F00
    BYTE CAPDU_1[] = {0x00,0x84,0x00,0x00,0x08};    //get random number,8 bytes

//  BYTE CAPDU_1[] = {0xFF,0xA4,0x00,0x00,0x01,0x06};   //reset, power down and up
    BYTE CAPDU_2[] = {0xFF,0xB0,0x00,0x00,0xFE};    //read card, 0x00 -> 0x08
    BYTE RAPDU_0[1024];
    BYTE RAPDU_1[1024];
    BYTE RAPDU_2[1024];
    DWORD rr0 = 1024, rr1 = 1024, rr2 = 1024;
    DWORD cch = 100;
    DWORD i = 0;
    DWORD ret = 0;

    //Create contex
    printf("Create contex ");
//  ret = SCardEstablishContext(SCARD_SCOPE_USER, NULL, NULL, &m_hContext);
    ret = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &m_hContext);
    if(SCARD_S_SUCCESS != ret)
    {
        printf("
pcsc-lite-1.8.8.tar.bz2 pcsc-lite-1.8.8 嵌入式usb设备开发必不可少的代码支持库. 立即下载

相关推荐

Linux 调试智能卡相关离线资源,包含pcsc-lite、ccid、libusb等安装包以及依赖软件包,包含多个版本的

Linux 调试智能卡相关资源,包含pcsc-lite、ccid、libusb等安装包,包含多个版本的

从DC到DCG:手把手教你搭建物理感知综合流程(含DEF文件处理避坑指南)

本文详细介绍了从Design Compiler(DC)过渡到DC Topographical(DCT)和DC Graphical(DCG)的完整操作框架,特别针对DEF文件处理提供避坑方案。通过环境准备、工具升级、DEF文件处理、DCG综合配置等步骤,帮助开发者高效应对28nm以下工艺节点的物理感知综合挑战,显著提升时序收敛效率。

weixin_27966471的博客 380

STM32CubeMX和华为LiteOS Studio开发STM32

传统的STM32的开发通常使用Keil/IAR这类开发软件,随着物联网时代的到来,传统嵌入式的发展不断向物联网方向靠拢,而Keil/IAR这类开发软件无法满足IoT一站式的开发,华为LiteOS Studio结合STM32CubeMX可以快速,高效地进行物联网开发,本文提供一种开发思路及环境的配置方法。...

weixin_45680600的博客 2832

【 Git学习记录(三)】推荐四款主流的Git代码托管平台 —— GitHub、GitLab、Gitee、Coding

了解过Git之后,作为一个程序猿最基本的,你还需要了解目前主流的在线代码托管平台,并至少选择其中一款在平时开发中使用。这里特别介绍以下四款: 国外平台 GitHub —— 全球最流行的代码托管平台 GitLab —— 基于git的仓库管理程序 国内平台 Gitee —— 开源中国旗下的代码托管平台 Coding —— 支持社交元素的代码托管平台 一. GitHub 链接地址:https://github.com/ GitHub目前是全球最流行的代码托管平台(别称:全球最大的同性交友.

JZevin的博客 6091

EtherCAT-7 从站代码移植-SPI

STM32F103 + AX58100,从站代码移植。

tianya_xuan的博客 3567

FPGA波束形成:从算法到硬件的艺术之旅

本文深入探讨了FPGA在波束形成技术中的应用,从算法原理到Verilog硬件实现的全过程。文章详细分析了FPGA并行处理、低延迟和可重构特性如何优化波束形成系统性能,并提供了Verilog关键模块代码示例和资源优化策略,为工程师实现高效FPGA波束形成解决方案提供实用指导。

tea88的博客 1044

在VS2019里把JSBSim飞行模型集成到你的C++项目里(附完整配置流程和常见错误解决)

本文详细介绍了如何在Visual Studio 2019中将JSBSim飞行模型集成到C++项目中,包括环境准备、源码编译、项目配置和常见错误解决方案。通过实战技巧和优化建议,帮助开发者高效实现高精度飞行仿真功能,提升开发效率。

weixin_42620202的博客 413

mapbox进阶,dem数据转为等高面,加载转换后的等高面到地图

本文详细介绍如何基于mapbox-gl v3.*.* 版本,使用dem数据转为等高面,加载转换后的等高面到地图,亲测可用。希望能帮助到您。一起学习,加油!加油!

我哎GIS博客 407

31、摩擦学中的材料选择

本博文深入探讨了摩擦学应用中材料选择的重要性,分析了材料的机械、物理和化学属性对摩擦学性能的影响。同时介绍了材料匹配原则、处理方法及表面涂层技术,以优化耐磨性和抗腐蚀性。通过实际案例和评估方法,为读者提供了系统化的材料选择流程和决策依据。

juice的博客 246

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: SmartCard学习之操作练习
下一篇: SmartCard学习之PySmartCard
Benjamin_Xu
博客等级 码龄14年 46粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值