1

我有多个没有唯一序列号的 ACR122T 智能卡设备(来自 ACS)。我需要知道我从 pcsc-lite 中连接到哪个物理智能卡。我通过使用 lsusb 知道物理设备在哪个 USB 端口上,但是如何使用 SCardGetAttribute(SCARD_ATTR_DEVICE_UNIT) 映射该 USB 端口信息?

似乎地图应该在操作系统级别,因为我找不到从 pscs-lite API 中读取 USB 端口信息(lsusb 结果)的方法。

这篇文章提到了一种方法,智能卡读卡器 ACR122U 没有唯一的序列号 ,但我不明白“使用该开发号来确保我始终使用正确的读卡器”背后的细节。

任何帮助表示赞赏。谢谢,-菲尔

4

1 回答 1

0

免责声明:我在 Windows 上工作,而不是 Linux。

ACR122T(和ACR122U)设备不仅没有序列号(除了背面印的那个)而且没有USB序列号,因此只能通过插入的USB端口来区分它们。此外,所有ACR122Ts和我们在这里(我们买了一堆)将自己标识为 Windows 的“ACS ACR122”。使用专有 API 获取固件版本,ACR122T 和 ACR122U 都将自己标识为 ACR122U(例如“ACR122U207”或“ACR122U214”)。

这意味着操作系统本身无法以任何其他方式区分多个设备,而不是它插入的 USB 端口。

我还尝试在 pcsc 设备和 OS 设备之间建立连接,但除了这个功能(仅在 Windows 8 开始可用)之外,我没有找到任何东西,所以在我看来没有办法通过pcsc 来电。

设备单元由 pcsc 层按顺序给出,因此您可以区分您连接的设备,但不能识别特定设备。

于 2015-01-21T22:28:26.407 回答