问题标签 [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.

0 投票
1 回答
1044 浏览

macos - 如何使用 Mono 和 C# 在 Mac OS 上禁用 ACR122U 蜂鸣器?

请原谅我可能没有使用正确的术语,因为我是新手。我已经包装了 PCSC API,应用程序现在检测到卡片(使用 SCardGetStatusChange)没有任何问题。

现在我希望能够做一些简单的事情,比如关闭蜂鸣器。据我了解,我首先需要使用 ShareMode.SCARD_SHARE_DIRECT 调用 SCardConnect。此呼叫以 OK 响应。之后,我使用 SCardControl 发送以下字节:FF 00 52 00 00(如http://www.acs.com.hk/download-manual/419/API-ACR122U-2.02.pdf的第 6.7 章所述)

但是,此调用返回 -2146435064。我使用 0x42000001 作为 SCardControl 的第二个参数。我尝试了其他几个“有根据的猜测”,但结果都一样。

有没有人得到这个工作?

更新

无论我尝试什么,SCardControl 都会不断返回 -2146435064 (SCARD_E_INSUFFICIENT_BUFFER)。调用的定义如下:

使用具有以下值的参数:

  • card = 0x1201a(由调用 SCardConnect 创建)
  • controlCode = 0x42000DAC (0x42000000 | 3500) 但如前所述,我尝试了其他几个值
  • 数据 = 字节 [] { 0xFF, 0x00, 0x52, 0x00, 0x00}
  • 响应缓冲区 = 字节 [100]

为了消除可能的 controlCode 无效值,我还尝试使用 SCardTransmit(将 SCARD_PROTOCOL_RAW 与 SCardConnect 一起使用),但这会导致 -2146435050(SCARD_E_NOT_TRANSACTED)

更新 2

刚刚在 Raspberry PI 上尝试了相同的代码(通过 libpcsclite.so),它工作正常。我真的很想让它在 OS X 上运行......

0 投票
2 回答
1796 浏览

linux - 如何在命令行上获取读卡器名称

我正在编写代码以在 Windows 7 上与智能卡进行通信。智能卡随附的示例代码是在linux环境中开发的。我已经安装了 Linux 最小系统 Mingw 和 Msys。

在 linux 环境下获取 reader 名称的正确命令是pcsc_scan. 但是 Msys 命令提示符和 Windows 控制台都无法识别使用此命令。

我知道 Winscard 可以用来列出所有的读者。但是有没有办法让pcsc_scan 命令在 Windows 上运行。或者在 Windows 环境中是否有相应的命令?我会感谢你的帮助。

0 投票
2 回答
1751 浏览

c# - 智能卡读卡器命名

我在系统中有两个阅读器(HID OMNIKEY 5321)(每个阅读器执行不同的功能)

  • 读卡器 1 - “智能卡读卡器0
  • 读卡器 2 - “智能卡读卡器1

在我的程序中设置了

  • “智能卡读卡器0 ” - 动作 1
  • “智能卡阅读器1 ” - 动作 2

但有时(没有重新启动,可能失去联系)

  • 读卡器 1 的名称为“智能卡读卡器1
  • 读卡器 2 的名称为“智能卡读卡器0

并且程序没有做用户需要的事情。我在 WinScard.dll 中使用 SCardGetStatusChange(需要阅读器的名称)

该怎么办?有没有办法更改阅读器的名称(固件、驱动程序......)?是否可以使用阅读器的序列号?

我也看了,但没有结果 智能卡读卡器命名:当移除任何读卡器时,其余的名称发生变化 PCSC 智能卡读卡器的“友好名称”是如何构造的?

0 投票
1 回答
1582 浏览

java - 向 PN532 (ACR122u) 发送 TgInitAsTarget 命令时出现 Apdu 错误

我正在尝试以卡仿真模式将 TgInitAsTarget 命令发送到 PN532。当我尝试发送这个:

我收到一个 apdu 错误:

  • 线程“main”java.lang.IllegalArgumentException 中的异常:apdu 必须至少有 2 个字节长
  • 在 javax.smartcardio.ResponseAPDU.check(未知来源)
  • 在 javax.smartcardio.ResponseAPDU.(未知来源)
  • 在 sun.security.smartcardio.ChannelImpl.transmit(未知来源)

下面的代码是我使用的代码。这段代码错了吗?

看起来 Readregister、WriteRegister 和 SetParams 部分在这篇文章之后得到了很好的回应。孔代码:

任何帮助,回应或建议表示赞赏!

提前谢谢了!

0 投票
1 回答
4495 浏览

nfc - “直接传输命令”(ACR122U)和“PC_to_RDR_Escape”(ACR1251U)之间的区别

使用 ACR122U,我知道您可以使用直接传输命令将直接消息传输到 NFC 控制器 (PN532) 0xff 0x00 0x00 0x00...:。

当我阅读 ACR1251U 的手册时,它说:阅读器的外围设备控制命令是通过使用 PC_to_RDR_Escape 实现的

这到底是什么意思?这是否意味着无法直接向 NFC 控制器发送消息?如果可能,您在哪里可以找到它使用的 NFC 控制器?

欢迎任何信息!

提前致谢。

0 投票
1 回答
670 浏览

usb - 智能卡读卡器:构建 libccid

我正在尝试在 Fedora 20 上一起构建 libccid、pcsclite 和 libusb。我已经能够编译和构建 libusb 和 pcsclite。但是,在构建 libccid 时,我在构建日志中收到以下错误:

将 src/92_pcscd_ccid.rules 文件复制到 udev 目录 (/etc/udev/rules.d/)

我确实将文件复制到指定位置,然后运行了makefile。但是,我没有任何成功。

有人遇到过这个错误信息吗?

谢谢

0 投票
2 回答
4024 浏览

smartcard - 如何读/写仅同步的智能卡,如存储卡

我有一个只支持同步接口的 IC 存储卡(如 SLE5532、SLE5542...等)

我想知道如何编写一个读取内存内容、验证 PSC(PIN)和写入内存的应用程序。

这种类型的卡不能接受像微处理器卡这样的普通 APDU。在数据表中,它指定要以二进制形式发送的命令(所有命令为 3 字节长度)

我找到了一个设计用于与 SCM Reader(基于 MCSCM.dll)一起使用的应用程序,但它不适用于我的 OmniKey 阅读器。

我想知道是否有可能构建一个直接调用 winsCard API 函数而无需直接使用 Reader 的 DLL 的应用程序。如果是这样,调用的正确函数是什么?

如果不可能,我怎样才能找到 OmniKey 的 API?任何人都可以寄给我使用 OmniKey 3121 读卡器和同步卡的样品吗?

提前致谢

0 投票
1 回答
746 浏览

c# - 如何实现基于事件的触发而不是定时器

我最近使用 winscard 库实现了与 ACR122 的通信。我使用计时器来调用所有相关的 API 调用,例如 1. SCardEstablishContext 2. SCardListReaders 等以获取阅读器的状态

我已将计时器的间隔保持在五 (5) 秒。因此,这会使获取设备状态延迟 5 秒。

谁能建议我一种更好的方法,例如“基于事件的触发器”来避免这种延迟并一起删除计时器。

0 投票
1 回答
1161 浏览

windows - Windows Server 2012 R2 智能卡限制

下午所有

我们有一个在 Windows Server 上运行的应用程序,它需要多达 50 个智能卡才能连接到主机应用程序服务器。
这在我们现有的 Server 2003/2008 安装上没有任何问题。

然而,当我们在 Server 2012 R2 上测试应用程序时,只显示了 10 个智能卡。所有 USB 设备都被正确识别,但是我们的 pcsc 测试应用程序只能找到 10 个终端。

有没有人遇到过这个问题?任何已知的修复?

干杯
加文

0 投票
1 回答
423 浏览

nfc - ACR122u 停止检测智能手机

我正在为我的论文开发一个原型。我正在使用 ACR122u 读/写器,通过 APDU 命令将数据传递到 android 手机(HTC One M7)。在我应用最后一个补丁(6.09.401.5)之前,ACR122u 正在检测智能手机,但之后它就停止了

之前我只是用来激活智能手机上的 NFC,ACR122u 会从红绿色变为已检测到它。

请寻求一些指导

带着敬意