我正在尝试编写一个使用ACS ACR122U卡终端与智能卡交互的应用程序。根据我可以发现的所有API,API使用标准APDU命令和psuedo-APDU的组合来与终端进行交互,但是psuedo-APDU似乎不像声称的那样工作。
API参考(在ACS站点上提供)表示“FF XX XX XX ...”形式的APDU将由终端解释(而不是发送到卡)但我总是得到响应状态“6E XX”(我将其解释为发送无效的班级ID)。 我尝试使用“FF 00 40 0F 04 00 00 00 00”发送命令来刷新终端上的LED,并尝试使用“FF CA 01 00”从卡中获取一些唯一标识符。
我在ISO 7816-4文档(智能卡标准)和ACS提供的API参考中找不到任何有用的东西。此外,ACS也不太愿意提供信息。 有没有人对我可能做错了什么或者在哪里寻找其他信息有任何想法?
我可以在连接卡时从终端获得ATR - 应答重置。我正在开发与Mifare 1K卡的交互,并希望从它们读取并与终端上的LED和蜂鸣器进行交互。
答案 0 :(得分:2)
您可以检索API文档here。这是ACS专有的APDU,因此不要参考标准的ISO-7816规范。有关伪APDU要求,请参阅第6节。
要模拟LED,请参阅6.2节的详细信息和附录E.您可以尝试更改您的APDU,如下所示:FF 00 40 FF 04 0A 0A 03 03.请注意,我设置了LED控制,并为LED持续时间设置了非零值。
对于第二个APDU,请参阅第4节。请注意,您的APDU中缺少P3 / Le(应为FF CA 01 00 00),并且您需要与PICC连接的读卡器。