问题标签 [pcsc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 智能卡终端移除:SCARD_E_NO_SERVICE CardException
我正在开发一个用于使用smartcardio
智能卡的 Java 应用程序。必须可以让一个人移除其 USB 读卡器,然后重新插入,而无需重新启动小程序。
我正在使用terminals()
andwaitForChange()
方法来检测终端更改,它在 Linux、MacOS 和 Win7 上运行良好。
但是在 Windows 8(和仅 Windows 8)上,在删除最后一个终端后,这些方法会抛出一个SCARD_E_NO_SERVICE
CardException
,并且不会检测到任何更多的变化。
我不确定它在说什么“服务”。但我认为这是在我调用单例时在我的线程中启动TerminalFactory.getDefault()
的TerminalFactory
。而且我认为这个单例可能有一种方法来管理底层服务,这就是坏的。
有没有人知道如何smartcardio
在 Windows 8 上管理终端断开连接?
macos - 如何为 SmartCard 配置 PCSCD
我是 PCSC 驱动程序开发的新手,我有一个 Mac OSX 10.8.4(山狮),它具有 PCSC 框架版本 1.4.0。
我有一张智能卡,并且我有库或 c 代码,我可以使用它们来读取和写入卡(即获取 ATR 等)
我想知道配置 PCSC 以使 PCSCD 识别智能卡的过程
我试图制作一个与卡通信的c代码的dylib(动态库),并在/etc/reader.conf中创建了一个条目,并将dylib放在指定的路径中。但是当我执行 pcscd -afd 时,我仍然无法获得任何响应(即获得 ATR)。
任何建议或链接都会有所帮助
java - 与 NFC (PC/SC) 的 java 通信
有没有办法让java识别我的NFC读卡器javax.smartcardio.TerminalFactory
?
我正在使用 Ubuntu 13.04 并且pcsc_scan
能够读取卡片:
但随着
总是返回一个空list
是驱动问题吗?
java - 从 servlet 使用 javax.smartcardio
我有一个 servlet,它使用 javax.smartcardio 来尝试访问连接到服务器的 PCSC 智能卡读卡器。不幸的是,当我尝试在 servlet 中列出附加的读者时,列表是空的。但是,当我运行运行相同代码的本地 java 程序时,列表包含预期的附加阅读器。有人可以解释为什么会这样吗?这与安全性和沙盒有关吗?有没有办法解决?
在命令行上的本地 java 程序中运行时,上面的输出是:
在我得到的服务器上
rfid - ISO 15693:读取多个安全块
我正在尝试将当前从 ISO 15693 附近 RFID 卡 (TI Tag-it HF) 读取一个安全状态/块的现有 SCardTransmit() 命令 (C#) 修改为将检索所有 64 个块的安全状态的命令卡片。现有代码如下:
按照我的理解,Convert.ToByte(blockNum) 前面的字节表示获取安全状态的命令,然后是有问题的块,以及要读取的块数。我看到的有关安全状态读取的唯一参考资料是“非接触式智能卡读卡器开发指南”中的第 10.3.4 节
注意:SmartCardTransmit 负责使用正确的卡句柄和其他所需参数调用 SCardTransmit。我对表示对安全块 0 到 63 的请求的发送标头的格式更感兴趣。
c++ - Mac OS 的静态库
我为 Mac OS 编写了一个 C++ 静态库。它适用于使用智能卡运行的应用程序。因此,它使用了 PCSC.framework。在编译mylib的过程中,没有问题,导出了一个静态的lib。我创建了一个应用程序,它是命令行工具。我将我的静态库添加到应用程序中。当我从 lib 的一个类创建一个实例并调用该实例的一个方法时,我为架构 x86_64 获取了错误未定义符号:SCardConnect、SCardEstablishContext 和其他 pcsc 函数
为了解决这些错误,我尝试了以下方法;
在将架构从 64 位更改为 32 位英特尔后,我重建了静态库。然后我还重建了测试应用程序。但类似的错误仍在继续。只是与架构 i386 的早期未定义符号不同。
我有适用于 x86_64 和 i386 的 PCSC。libccid 用于 i386。我正确运行 pcsctest。
请让我知道如何解决它。
c# - C# SCardControl 返回码 1
这是我在 C# 或基本上任何地方使用读卡器的第一次尝试。
我ACS ACR122U PICC Interface 0
在 Windows 7 64bit 中使用阅读器。
当我尝试使用连接到阅读器时出现第一个问题
它返回错误代码 6,但我通过将项目的平台从 更改为 google 并解决了Any CPU
它X86
。
在那之后,我遇到了另一个问题,这次是控制读者。
我试过:
返回的代码是,这很奇怪,因为我在文档1
中找不到它。
真的需要这方面的帮助。
谢谢 !
usb - 智能卡读卡器 ACR122U 没有唯一的序列号
我使用 PCSC 驱动程序和 javax.smartcardio 库作为驱动程序的包装器。我有 3 个 ACR122U 设备插入 Linux (debian) 系统。我已经在这些设备上运行了 udevadm 信息,它们的序列号都是 0。我需要确定我班上的哪个阅读器。我可以通过解析 /sys/devices 文件夹来检查使用了哪个拓扑 USB 端口,但我仍然无法在 Java api 中“选择”设备。
有谁知道修改PCSC设备堆栈顺序或其他东西的方法。这样我就可以指定设备在终端工厂的终端列表中的顺序。我已通过电子邮件向 ACS 询问为什么序列号为 0,以及他们是否可以帮助我修改它,但我没有回复。
如果有人认为他们有解决方案,请告诉我。谢谢,米奇
java - Ubuntu 上带有 PCSC lite 的 SCL01x 非接触式阅读器
我有来自Ingenico的智能卡读卡器,试图让它在 Ubuntu 12.4 上工作。64位
我已经安装了 pcsc lite 和 libusb 以及读卡器驱动程序,即 SCL01x 非接触式读卡器 - 驱动程序。
情况是当我将 rader 插入我的 USB 端口时,阅读器上的信号灯熄灭。
当我尝试运行 pcscd 时,我得到了他的错误:
当我运行 pcsc_scan 时:
没事了...
我还尝试了 java 中 smartcardio 包的示例,错误是:没有终端,找不到读卡器。当我运行 lsusb 时,设备列表中有我的阅读器标记为 SCM Microsystem
[编辑][1.0] 我已经成功启动 pcscd 服务,现在我可以看到该设备正在通过信号灯工作当我在它上面刷智能卡时,灯正在工作。已安装 64 位驱动程序
smartcard - 当 T=0、Lc>0、Le>0 时,智能卡是否返回 sw=9000?
仔细阅读 ISO/IEC 7816-3:2006,第 12.2.5 节指定了当阅读器发送一个 Lc>0,Le>0 的命令 APDU 用于 T=0 传输协议(字节流)时会发生什么。初始命令 TPDU 没有 Le 字段,如果卡响应成功,应用程序应发送 0xC0 GET RESPONSE 命令,直到收到 Le 字节。
问题:如果智能卡期望返回数据,卡返回 0x9000 以响应初始 T=0 命令(在任何 GET RESPONSE 命令之前)实际上是否有效,正如 7816-3 所指定的那样?应用程序在 0x9000 响应后发出 GET RESPONSE 命令是否有效?相比之下,通过阅读javax.smartcardio中 doTransmit和OpenSC 中 sc_transmit的用法,这些应用程序似乎只在 sw=0x61xx 响应之后尝试 GET RESPONSE,而在 sw=0x9000 响应之后从未尝试。