问题标签 [smartcardio]

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 回答
137 浏览

certificate - 用于在 Java 中签署证书的智能卡类型

我想在使用智能卡的通信中引入额外的安全性。我希望智能卡签署服务器和客户端证书。每台机器都有自己的智能卡读卡器。应该是什么卡标准?我购买了 SLE5528 SLE4428 ISO 7816 但它可能不是一个好的选择?

0 投票
1 回答
659 浏览

java - 阅读visa emv卡总是得到6a82和6d00

我正在从 Visa 卡中读取数据,但总是收到 PSE 的 6a82 和 6d00 响应。我正在使用 smartcardio,以下是选择 PSE 的命令:00A404000E315041592E5359532E444446303100

处理代码:80A8000002830000

下面的代码适用于paypak(一种声称与 EMV 兼容的巴基斯坦支付卡),但对于签证它不起作用。

0 投票
1 回答
122 浏览

java - 将数据写入 StdData 文件中的智能卡

我使用这个 apdu 命令在智能卡中创建了一个文件:

String apdu = "90CD00000700000E0EA0000000"; channel.transmit(new CommandAPDU(DatatypeConverter.parseHexBinary(apdu)));

该文件已成功创建,但是我无法在该文件中写入数据,我尝试了以下命令: String apdu = "903D00003B00000000000034" + data + "00";

但它响应失败:sw1 91 sw2 BE(超出边界)

这个文件有什么问题?

0 投票
2 回答
211 浏览

java - 将缓冲区直接发送到智能卡

我需要向智能卡发送消息。首先,我使用 gpshell 发送它以测试正确性并得到答案:

有了这个结果,我有信心使用 smartcardio 复制 java 中的行为。以下是我写的代码:

当代码运行时,我总是收到错误 0x6E00,这意味着:“不支持类”。

阅读传输的 javadoc我了解“命令 APDU 的 CLA 字节会自动调整以匹配此 CardChannel 的通道号。”

我怀疑由于某些原因,类字节以某种方式更改,因此卡以错误回答。

有没有办法直接将消息发送到java中的卡?

0 投票
2 回答
4481 浏览

java - 在 Open JDK 11(Redhat)上找不到 javax.smartcardio.*

我正在使用 Redhat 的 OpenJDK 11 与 Windows 上的智能卡进行通信。但是我在编译时遇到了问题。它说找不到 javax.smartcardio 库。

环境:Redhat OpenJDK 11、Intellij、Kotlin、Gradle

另外,我已经查看了类路径,并且有一个“java.smartcardio”,我在下面附上了一个屏幕截图。

类路径

我应该怎么办?

添加 - - - - - - - -

有线的东西在 Java 代码中,它在同一个项目上工作。我认为 Kotllin 环境设置有问题。

0 投票
1 回答
64 浏览

nfc - Felica Card 错误:无法访问命令指定的区域或服务

我正在使用 javax.smartcardio 库来访问我的 Felica 卡。我能够毫无错误地获得 felica 卡的 ID。当我尝试向 Felica 卡写入块时,我收到以下状态标志。

0xA5:命令指定的区域或服务无法访问。

这是我正在使用的命令 apdu 的格式,

FF 00 00 00 D4 40 01 08 <8 字节 ID> 01 < 块数 01> <16 字节软数据>

我得到的响应是: D5 41 00 <8 bytes of ID> 01 A5

状态标志 2-A5是指定“无法访问命令指定的区域或服务”的错误。

0 投票
1 回答
2183 浏览

java - Eclipse 无法识别 smartcardio 库

从 Sun 的 jdk (1.8) 迁移到 Openjdk12 后 - Eclipse 无法识别“javax.smartcardio”的整个库。

例如:

会导致错误

我们尝试将“src.zip”添加到 Eclipse 中的 JRE 配置中,但其内容未出现在“项目资源管理器”中...

0 投票
1 回答
798 浏览

java - 使用多个读卡器加载 PKCS 密钥库时出错

在多终端设置中,从第 N 个(第一个除外)终端读取 CAC 卡时,我遇到了一个奇怪的问题。

环境 - JDK8_u211,无读卡器的Destop,笔记本电脑的内置读卡器,USB读卡器,CAC\PIV卡

用例尝试

  1. 当 CAC 卡插入笔记本电脑的内部插槽时,无论是否连接到笔记本电脑的 USB 卡终端,一切正常。
  2. 当 CAC 卡插入 USB 读卡器并连接到桌面时,一切正常。
  3. 当 CAC 卡插入 USB 读卡器并连接到笔记本电脑时,PKCS 存储实例化失败,因为配置使用 slot=1
  4. 当 CAC 卡插入 USB 读卡器并连接到笔记本电脑时,如果我在配置中硬编码 slot=4,一切正常。

问题:无法确定要在配置文件中使用的正确插槽。不知何故,终端的数量没有加起来以确定运行时的插槽。

通过启用 JDK 调试日志,我可以验证内部“C_GetSlotList”返回 0,4,因为我只有 2 个终端,因此使用索引 0 或 1。

有谁知道如何确定终端与插槽之间的相关性,或者我试图读卡的方式真的有问题吗?

请指教。

示例代码

*输出TestCase-1(工作)*

* 输出 TestCase-3(不工作)*

* 输出 TestCase-4 (WORKING)*

0 投票
1 回答
278 浏览

java - 如何使用 smartcardio 和 Java 控制 ACR122 上的 LED?

我正在尝试使用 Java 中的 smartcardio 库(JDK 8、NetBeans 7.4、Windows 10)。我尝试了许多其他库,但都没有成功。

读卡器 (ACS ACR122U) 附带一个 SDK CDROM,但必要的 .DLL 不在 CD 上,因此我无法使用 ACS 库。

由于我的 NFC 设备使用了 nfctools 库不支持的 EEPROM,因此我无法使用 nfctools。

我的代码如下:

它失败并显示有关“apdu 必须至少有 2 个字节长”的错误。

对象 apdu1 长 14 个字节,所以我不确定错误消息的含义。

第 43 行是ResponseAPDU answer1 = channel.transmit( apdu1 );

0 投票
2 回答
1131 浏览

smartcard - 扩展 APDU 命令

大家好,

我正在开发 Contact card(CT) 读卡器,我需要在其中发送更多 256 字节的数据。我已经在网上阅读了很多关于解决方案的内容,正如他们提到的 T=0 和 T=1 协议以及所有,甚至我还阅读了有关支持和能够向卡发送更大字节的扩展 APDU 命令。

在阅读了所有详细信息后,我搜索了很多用于扩展 APDU 命令的命令集,但我无法得到它。

因为,我有一张 SAM 卡 sim 大小的接触卡、一张信用卡类型的接触卡和一张 Mifare DesFire Ev2 4k 非接触式卡(CL)卡,我需要使用扩展的 APDU 命令在其中写入更大的数据字节。

经过大量搜索后,我找不到任何 ISO-7816 扩展 APDU 命令,因此我可以在卡中写入如此大的数据字节。

那么,能否请您分享一下扩展 APDU 命令集,通过这些命令集我可以在具有大数据字节的卡上执行写入和读取操作。

期待扩展 APDU 命令集....

所有的支持都受到高度赞赏。

提前致谢。

热烈的问候萨钦