如何访问Omnikey 3121智能卡读卡器

问题描述 投票:-1回答:1

我想使用Java来访问Omnikey读者的智能卡。我找到了像smartcardio这样的解决方案,但它没有足够的帮助。基本上我用读卡器连接,但是当我不需要时它使用APDU。我有一个想法是通过USB打开流到我的阅读器,并通过流将二进制命令放到设备然后以相同的方式得到答案,但从技术上讲,我如何用Java编写它?

我还发现像usb4java这样的库,但也有不好意见。也许有人有这个设备的经验,可以给我一些提示?

在互联网上,没有很多关于编程智能卡的教程。我也尝试过使用pyApduTool或HID Omnikey Sync API V2.0。但这仅用于测试。我必须写简单的请求来从卡获取信息。

java smartcard javacard smartcard-reader omnikey
1个回答
0
投票

您的问题基本上有两种解决方法:

  1. 不要使用java.smartcardio使用的PC / SC接口,而是使用读卡器制造商的原生专有库,例如使用包装器(基于JNI,但有更好/更高级别的替代品);
  2. 继续使用APDU,但使用CLA字节设置为FF hex,打开与阅读器的连接。 FF是保留的,但它通常被保留用于这种读卡器访问,例如,访问读卡器制造商支持的没有ISO / IEC 7816-4层的存储卡。
  3. 两个(仅限完整性):使用USB转串口接口芯片创建了许多读卡器,这意味着您可以直接连接到(虚拟)串行接口;不用说,你必须知道发送什么命令并自己编程,如果这个接口完全存在(Omnikey 3121相对较新,所以我会感到惊讶)。

这两个选项都依赖于读卡器特定的功能,因此您可以找到读者的信息,看看有什么可能。据我所知,没有办法要求提供什么功能。对于这种功能的标准化,不要期望太多。

您是否检查过读卡器特定文档?

© www.soinside.com 2019 - 2024. All rights reserved.