如何使用Chrome扩展程序从智能卡获取数据

时间:2016-06-24 13:41:04

标签: javascript google-chrome smartcard

我想开发一个简单的Chrome扩展程序,用于处理与智能卡的通信。 安装驱动程序后(如Smartcard Reader and ChromeApp所述),我可以获得有关设备的一些信息,如下所示:

device #0: {
    "device":0,
    "manufacturerName":"OMNIKEY AG",
    "productId":12322,
    "productName":"Smart Card Reader USB",
    "serialNumber":"",
    "vendorId":1899,
    "version":516
}

我该如何继续? 我现在需要获取ATR,发送/获取数据,我不知道该怎么做... (我们使用一些程序语言,比如Java,Python,C ++,但我不知道JS / chrome的相关API在哪里)

谢谢。

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试使用裸的chrome.usb API来编写扩展程序。 基本上,您必须根据CCID规范为智能卡读卡器编写驱动程序(here是其修订版1.1的链接)。这完全有可能,但绝对不是最简单的任务。

另一种解决方案是利用Google最近发布的Smart Card Connector App。这个应用程序已经捆绑了一个通用的CCID驱动程序,并实现了更高级的PC / SC API。使用此API,可以通过相对简单的请求执行诸如获取ATR或向卡发送/接收数据等操作。

P.S。我想强调的是,使用Chrome应用中的USB设备进行操作只能在Chrome操作系统下运行良好且稳定。对于其他操作系统,存在许多可能的缺陷(一般来说,当系统中的某些内容可能阻止Chrome访问USB设备时)。