当前位置: 首页 > 知识库问答 >
问题:

PCSC智能卡读卡器“友好名称”是如何构造的?

鞠建安
2023-03-14

我使用WinSCard列出所有阅读器,这会给我一个如下列表:

ASK RDR4x7 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 1
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 2

这很好,但我不知道哪个名字属于哪个读卡器。

这些名字来自哪里?它们是如何建造的?

到目前为止,我发现:在注册表中有一个HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services键。在此项下,您可以找到与读卡器的“服务”(我通过查询WMI注册表找到)匹配的子项。例如:SCM Microsystems Inc.SCR3320 USB智能卡读卡器读卡器的服务是SCR3XX2K

此子项(SCR3XX2K)具有另一个子项Enum,该子项具有多个有趣的值:

  • 计数:DWORD,连接的读卡器数量

我猜这些是附加在“友好名称”后面的数字,但我不知道名称字符串是如何构造的。我需要这个来将硬件设备ID(我通过WMI获得)映射到它们的友好名称。

那么,用于为智能卡读卡器创建“友好名称”的模式是什么?这些值从何而来?

共有1个答案

潘涵煦
2023-03-14

它们是以下三个属性的浓缩:

SCARD_ATTR_VENDOR_NAME
SCARD_ATTR_VENDOR_IFD_TYPE
SCARD_ATTR_DEVICE_UNIT

TechNet文章“智能卡事件”在“智能卡读卡器名称”部分中记录了这一点。

伤疤 属性是通过scardgettrib功能请求的。

SCARD_ATTR_DEVICE_SYSTEM_NAME属性返回友好名称作为列出读取器时得到的名称。

智能卡读卡器列表位于注册表中的HKLM\SOFTWARE\Microsoft\Cryptography\Calais\readers下。读卡器由SCR驱动程序的INF文件添加到此列表中,因此在驱动程序安装期间。

设备和读卡器之间的链接可以在SmartCardReader类{50DD5230-BA8A-11D1-BF5D-0000F805F530}HKLM\SYSTEM\CurrentControlSet\Control\class\{50DD5230-BA8A-11D1-BF5D-0000F805F5]下找到‌​30}

 类似资料:
  • 我已经实现了一个Andoid应用程序-服务器端应用程序。服务器与智能卡读卡器通信。当用户在Android应用程序中触摸按钮时,将构建一个连接到服务器以验证用户。应用和服务器之间交换的消息具有以下格式: 如果消息的类型值,则表明智能卡读卡器中存在错误 如果消息的类型值,则表明智能卡中存在错误 我使用如下代码与智能卡读卡器进行通信: 智能卡IO API具有异常的类。我的问题是,我不知道何时发送类型为或

  • 前言: 我有一个双接口智能卡读卡器,具有一些扩展功能(除了向卡发送APDU命令和接收APDU响应)。 例如,在其文档中提到,您可以使用以下命令获取读卡器的固件版本: GET_FIRMWARE_VERSION: FF69 44 42 05 68 92 00 05 00 在它的工具,有一个按钮为这个功能,它的工作原理很好: 我甚至嗅了嗅USB端口,看看我的电脑和我的读卡器之间的连接中到底交换了什么:

  • 问题内容: 我有一个IC接触式读卡器和SLE5528智能卡。想知道如何真正开始使用这些物品。 正在读取读取器,插入智能卡后看不到任何影响。 我还从http://www.openscdp.org/安装了opensmart的智能卡外壳 但是我不能用它来读任何读卡器。我想知道它是否有兼容性问题。 请我知道我可能不恰当地提出了这个问题,但是请那里的任何人帮助我。 任何相关的链接或有用的信息都可以帮助我入门

  • 问题内容: 因此,最近我一直在使用具有一些信息的智能卡,而我想要在此处实现的目标是使用智能卡读取器通过任何Android智能手机从这些智能卡中获取此数据。我一直在使用HID OMNIKEY 3021 USB 智能卡读取器来读取这些卡(而且我知道此读取器可通过Windows应用程序与这些卡配合使用,因为我已经对此进行了亲自测试) 现在,Android提供了USB主机,只要Android智能手机支持它

  • 我正试图从智能卡读取证书, 这是我从http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm我将在applet中执行这段代码,问题是每个用户都必须向我指出他们的本地pkcs11。。。dll,使用java samrtcard api是否可以避免加载此dll

  • 首先,我对智能卡还比较陌生,我不知道数据是如何存储的,哪些数据在智能卡上受到保护。 我正在读我的学生身份智能卡,它有PIN码保护。我一直在用默认的windows智能卡库(winscard.lib)用C编程。 我已经成功地阅读了ATR标题,但据我所知,ATR标题包含如何与读者沟通的信息,而不是用户信息。 我试过从卡中读取二进制文件,但APDU总是返回6E 00,表示“不支持类”或“错误指令”。以下是