问题标签 [winscard]

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 投票
0 回答
1141 浏览

java - JNA 和 Winscard:无卡读取属性 (SCardGetAttrib)

我在读取读卡器属性(如 SCARD_ATTR_VENDOR_IFD_SERIAL_NO)时遇到问题,尽管将函数 SCardConnect 的参数 dwShareMode 设置为 SCARD_SHARE_DIRECT,但读卡器上没有卡。出了什么问题?

这是代码:

这些是我正在使用的常量:

这是界面:

0 投票
1 回答
1353 浏览

smartcard - 为 SCardGetCardTypeProviderName() 获取智能卡的“名称”

为了从中获取加密上下文CryptAcquireContext(),我需要知道当前插槽中智能卡的提供者名称。

根据文档,SCardGetCardTypeProviderName()会这样做,但参数 2 是卡名,我看不出如何以非交互方式确定这一点。我见过的所有文档/示例都对名称进行了编码或依赖SCardUIDlgSelectCard(),它显示了一个 UI。

类似地阅读SCardLocateCards(),虽然它需要一个智能卡名称列表(我从中填充SCardListCards()它,但它似乎没有传回任何标识插入的智能卡名称的内容。

我怀疑我遗漏了一些明显的东西,但我看不出是什么。

0 投票
1 回答
2478 浏览

java - WinScard 智能卡 dll 32 位 64 位兼容性

我必须使用 WinScard.dll 库来访问智能卡。我有一个 Java 应用程序,它加载并使用这个库来访问智能卡。

32 位系统:最初我们的应用程序是为 32 位 Windows 编写的。因此,库的以下接口运行良好。

64 位系统:现在,当我们将应用程序迁移到 64 位窗口时,我们意识到要使其工作,我们需要使所有 iHandle 长而不是 int 。因此以下工作

所以现在我的问题是:

  • 64 位 Java 虚拟机

  • 64 位 dll ( C:\Windows\System32 )

  • 在 iHandle 界面中保持 Long

处理程序获得:正确

(在 64 位系统上运行但使用 32 位工件):

  • 32 位 Java 虚拟机

  • 32位dll

  • 保持长久

获得的处理程序:不正确

Shouldn't the scenario 2 be taken care automatically by the WOW64 subsystem . I read that WOW64 automatically converts the data structures so that a 32 bit application can run on a 64 bit system .

Can someone advice me on how to get my application running on both 32 & 64 bit systems without having the need to change the interface of the iHandle every time ?

0 投票
1 回答
16159 浏览

c# - 使用 .Net 技术开发智能卡读卡器

有谁知道如何监控智能卡的存在并读取卡的 UID 值?

是的,我在网络上尝试了很多例子,比如

.NET 的智能卡框架

pcsc-sharp

监控智能卡读卡器

但不知道该怎么做。我可以检测到卡的存在并且可以单独获取 UID,但不知道如何在我的应用程序中组合它们:( .

帮我

0 投票
2 回答
1392 浏览

rfid - ISO 15693:读取多个安全块

我正在尝试将当前从 ISO 15693 附近 RFID 卡 (TI Tag-it HF) 读取一个安全状态/块的现有 SCardTransmit() 命令 (C#) 修改为将检索所有 64 个块的安全状态的命令卡片。现有代码如下:

按照我的理解,Convert.ToByte(blockNum) 前面的字节表示获取安全状态的命令,然后是有问题的块,以及要读取的块数。我看到的有关安全状态读取的唯一参考资料是“非接触式智能卡读卡器开发指南”中的第 10.3.4 节

注意:SmartCardTransmit 负责使用正确的卡句柄和其他所需参数调用 SCardTransmit。我对表示对安全块 0 到 63 的请求的发送标头的格式更感兴趣。

0 投票
0 回答
668 浏览

smartcard - ISO 15693:OMNIKEY 非接触式读取器,偶尔读取失败

我正在调查从 HID OMNIKEY 非接触式读卡器读取 TI Tag HF-I RFID 卡中的八个数据块的间歇性问题。下面的例程从一个循环中ReadEightBlocks调用 8 次,每次增加 8 次。读取卡上的所有 64 个数据块,读取 8 个块。依次调用. 但是,读取第二个 8 块偶尔会失败,错误代码为. 谁能解释为什么即使发出了正确的命令,读取偶尔也会失败?forstartBlockNumReadEightBlocksSmartCardTransmit()SCardTransmit()0x6A 0x82

0 投票
2 回答
2475 浏览

c# - C# SCardControl 返回码 1

这是我在 C# 或基本上任何地方使用读卡器的第一次尝试。

ACS ACR122U PICC Interface 0在 Windows 7 64bit 中使用阅读器。

当我尝试使用连接到阅读器时出现第一个问题

它返回错误代码 6,但我通过将项目的平台从 更改为 google 并解决了Any CPUX86

在那之后,我遇到了另一个问题,这次是控制读者。

我试过:

返回的代码是,这很奇怪,因为我在文档1中找不到它。

真的需要这方面的帮助。

谢谢 !

0 投票
1 回答
2304 浏览

smartcard - ISO 15693:即使 SCardConnect 和 SCardTransmit 成功,SCardReconnect 也会失败 (C#)

我正在尝试实现代码,当尝试使用 HID 5321 智能卡读卡器读取 TI Tag-IT RFID 卡时,该代码将针对某些错误条件执行 SCardReconnect。如果发生传输错误,我会尝试重新连接并重试操作。但是,当我执行重新连接时,我得到一个返回值 6(无效句柄)。这是调用工作 SCardConnect 和不工作 SCardReconnect 的代码。

其中 m_hCard 和 m_protocol 相同(IntPtr)。

以下 SCardTransmit 也可以正常工作,并且它使用对 m_hCard 的相同引用

这是一件相当紧迫的事情。有没有人碰巧知道可能发生了什么?我提前感谢大家的帮助!

0 投票
2 回答
921 浏览

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 响应之后从未尝试。

0 投票
1 回答
7161 浏览

c# - 使用来自 winScard.dll 的 SCardTransmit 读取标签 4B 的问题

两周以来,我一直致力于读取有源 NFC TI 芯片的标签和存储的链接。

我在阅读 ATR 时也有问题。

我的阅读器是 Springcard H663。

我使用 winScard.dll 并设法使用SCardEstablishContext()SCardConnect()成功开始工作,包括它们作为包装器。

现在我有一个星期的问题,没有任何进展。

我不知道如何访问标签或存储的信息或为函数提供哪些值。

是io结构和包装器的实现。

这是我尝试访问信息的方式:

为了完整起见,我向您展示了我的 ByteToString 函数:

也是我的get_readerconnection(...)功能:

我的问题是如何_readertag(..)处理获取标签、链接或 ATR 的功能。我怎样才能显示结果?

我在网上搜索过,但大多数代码对我来说都太先进了,而 MSDN 对我没有帮助,而且代码项目上的代码对我来说也很复杂。

我将非常感谢您的帮助!

弗雷德里克