问题标签 [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 回答
370 浏览

.net - 如何从 powershell 访问芯片卡?

我想向芯片卡发送芯片卡命令(APDU)并读取芯片卡的响应。

因为windows系统上不应该有额外的安装,我想在windows powershell中做。

是否有捷径可寻?

0 投票
1 回答
10067 浏览

windows-7 - Windows 7 干扰智能卡

我有一个使用 PC/SC API 与智能卡通信的应用程序。在 Windows 7 上,我得到奇怪的结果:从卡返回的数据与某些命令不一致且无效。如果我在组策略中禁用智能卡即插即用服务,那么一切正常。有没有人经历过类似的事情?有什么办法可以让智能卡即插即用服务玩的很好?不必禁用它会很好......

0 投票
1 回答
1988 浏览

usb - 智能卡读卡器命名:移除任何读卡器时,其余读卡器名称更改

我正在编写一个智能卡应用程序。此应用程序连接读卡器中的卡,有时可以使用它。我需要注意阅读器何时不再可用(卡被弹出或阅读器从 USB 中移除)。

使用SCardStatusChange监视读者。此功能需要读者姓名才能观看。

我将两个带卡的读卡器插入 USB 插槽。它们被识别为“USB Smart Card Reader 0”和“USB Smart Card Reader 1”。我删除了一位读者。Windows 显示“USB 智能卡读卡器 1”仍处于连接状态。我插入它 - 再次两者都可用。现在我删除第二个。Windows 仍然显示“USB Smart Card Reader 1”已连接。这就是问题所在,因为它应该是仍然连接的“USB Smart Card Reader 0”。跟踪例程无法观看阅读器,因为它的名称已更改。

是驱动程序问题还是 XP 智能卡子系统问题?使用的驱动程序是 USB CCID Compliant 版本 5.2.3790.1830(VID 076B,PID A021),usbccid.sys。

0 投票
1 回答
1453 浏览

c++ - 列出来自 CAC 的证书,无需 PIN

我正在开发一个 CAC 身份验证应用程序。

我正在运行 RHEL 5.5 并在我的机器上连接了一个读卡器。当我插入智能卡/CAC 时,在时钟所在窗口的右上角会弹出一个通知,并且可以通过单击图标访问“智能卡管理器”GUI(带有锁定的卡)出现。显示智能卡管理器后,我可以查看卡上的证书列表以及详细信息等,而无需输入密码。

现在,另一方面,在我的 C++ 代码中,当我使用 nss 库获取插槽和列表证书时,我无法在不输入 pin 的情况下获取证书列表。

我想做的是从卡上获取证书列表,并在对话框中将该列表与 pin 文本字段一起呈现给用户,以便用户可以输入 pin,然后选择用于身份验证的证书 ALL IN ONE步骤而不是应用程序必须为 pin 显示单独的对话框,然后为证书选择显示弹出窗口,但似乎使用 nss 库是不可能的,但另一方面,智能卡管理器 gui 可以轻松地做到这一点。谁能指出我是否可以使用单独的 api 从 CAC 获取证书列表的正确方向???谢谢!

0 投票
1 回答
4597 浏览

smartcard - 通过其 SFI 在智能卡上选择 EF

一些智能卡提供通过 SFI(短文件标识符)引用文件的选项,它是一个 5 位数字。相反,典型的文件标识符是 2 个字节长。

我需要一些帮助来弄清楚如何做到这一点,因为我未能在ISO 7816-4中找到答案。

首先,第 5.3.1.1 节状态(强调我的)

通过短 EF 标识符选择 — 短 EF 标识符可以引用任何 EF。它由五个不完全相等的位组成,即从 1 到 30 的任何数字。当用作短 EF 标识符时,数字零,即二进制 00000,引用当前 EF。在 MF 级别,保留数字 30,即二进制的 11110(见 8.2.1.1)。短 EF 标识符不能用于路径或作为 EF 标识符(例如,在 SELECT 命令中)。

我对这句话的解释是“你不能使用 SFI 来选择智能卡上的文件”——这不是我所期望的。

此外,第 7.1.1 节指定了如何使用 SELECT APDU 命令;表 39 规定了 P1 的内容。但是,没有一个示例说明如何通过 SFI 对其进行寻址(它们都是大约 2 字节的标识符)。

所以我的问题是:

  1. 添加 SFI 的原因是什么?每个标识符 2 个字节太多了?
  2. 如果文件的 SFI 已知,如何选择文件?
0 投票
1 回答
6450 浏览

c++ - 如何使用 Visual C++/PCSC 以编程方式加载 Java 卡小程序(.cap 文件)

我目前正在进行一个需要我将 JavaCard 应用程序 Applet(一个 .cap )文件加载到 JavaCard 的项目。我们的框架基于 Visual C++ 和 PCSC,所以我们需要将同一个小程序加载到一系列 JavaCard 中。有谁知道这可以如何处理?我的意思是,我应该从哪里开始。谢谢!

0 投票
1 回答
6331 浏览

java - ACR122 USB SDK - 对 Winscard.dll 的 JNI 调用

我们购买了用于 NFC 测试的 ACR122 USB SDK。我们想为 ACR122U-A2 NFC 阅读器构建测试桌面应用程序。我们正在 Microsoft Windows 7 平台上用 Java 开发它。

我们预计,为了使用 Winscard.dll 中的 PC/SC,我们需要进行 JNI 调用。为了做到这一点,应该准备好用于 JNI 调用的 C/C++ 包装库。

我认为这应该是 SDK 的一部分,因为示例应用程序引用了 JNI 包装器 Jacspcsc.dll,但该库不存在。有没有人有类似的经历?是否有任何可用于 Winscard.dll 的 JNI 包装器?

谢谢斯滕

0 投票
2 回答
18253 浏览

smartcard - 编程 PC/SC 阅读器时的 ATR 命令

我检查了 MIFARE Ultralight 和 TOPAZ/Jewel IC 标签的编程接口。API 很好地描述了字节如何保存在卡上,如何寻址内存块,如何进行所有操作,如读取、全部读取、使用 OTP(一次性可编程)功能、如何读取 ROM 字节、如何从空闲状态切换到就绪状态(REQA、WUPA 命令),它说明命令是否受 CRC 保护,如何访问标签 UID 等。

当开始对 NFC 阅读器(ACR122U 或 SCL010)进行编程时,我发现 PCD(阅读器)和 PICC(标签)之间的所有通信都以 ATR(Answer-To-Reset)命令开始,正如 Internet 上所描述的那样PCD 发送给 PICC 用于识别目的。

但是没有任何标签文档提到 ATR 命令——所有与标签通电时的通信 (PQR) 都以 REQA、WUPA 命令开始,以便将卡切换到就绪模式。

我的理解是 ATR 是由 PC/SC 基于读卡器与之通信的 NFC 卡构建的。一旦阅读器检测到基于它的标签是什么类型的技术,它就会创建 ATR。同样根据文档,不同 NFC 阅读器的 ATR 对于相同的 NFC 标签是不同的。

我对吗?PC/SC 是否构建 ATR?

BR 斯坦

0 投票
2 回答
8877 浏览

windows - 使用 WinSCard 获取 PCSC 读卡器序列号

如果读卡器中没有卡,我在获取 PCSC 读卡器序列号时遇到问题。我正在使用 winscard.dll 和 c++。

以下代码仅适用于读卡器中存在卡的情况。否则不检索 SCardHandle。我还没有找到任何其他方法来获取 SCardHandle。

有没有办法在不连接卡的情况下获取读卡器序列号?

0 投票
1 回答
4494 浏览

c# - 来自 O2Micro 阅读器上的 WINSCARD.DLL 方法 SCardTransmit 的未知响应以及响应长度信息

为了与智能卡通信,我使用 WINSCARD.DLL 作为 API 将 APDU 命令发送到智能卡。对于几个读卡器来说,这是按预期工作的,但不知何故,如果我发送,我会从方法中得到一个未知的回报(它不在http://msdn.microsoft.com/en-us/library/ms936965.aspx上)值SCardTransmitO2Micro 阅读器的命令。

什么工作:如果我发送命令(十六进制值):

我得到回应SW1: 61. SW2: 1F

响应告诉有0x1F可用的字节。所以我发送命令:

但是在那个命令上,我没有得到任何数据和返回值0x57

我的问题是,是否有人知道返回值0x57的含义以及如何解决或解决它的方法。