由于 ISO 7816-4 标准,Android 中是否有任何库可以与 NFC 设备通信?我的意思是实现 APDU 的就绪命令并且不需要手动发送字节?
或者也许唯一的方法是从 APDU 向我的设备发送字节?如果是这样,如何构造正确的 APDU 并找出字段值(CLA、INS 等)?
我的意图是进入卡上的目录并从卡中读取文件。
感谢您提前分享您的知识:)
我不知道标准库(既不用于 android 也不用于任何其他平台)并且找到一个的可能性很低,因为卡具有如此不同的命令子集和实现的功能。如果不确定生成的 APDU 是否可以工作,统一库有什么好处?因此,大多数解决方案都使用中间件,该中间件使用显示支持功能的描述文件,有时结合一些活动代码来重新格式化命令或通过一系列 APDU 组成所需的功能。由于为此类解决方案付出了巨大努力,其中大多数都是严格以目的为导向的,例如 PKCS#11。因此,您的解决方案要么解决存在此类框架的小扇区,要么您必须自己组合这些字节。看看这个答案对于 7816 指针,其中第 4 部分、第 8 部分和第 9 部分是最重要的,或者搜索 ISO 24727(也是一个多部分标准),它也尝试在来自不同制造商的卡上统一前端。
您的具体问题的一个问题是,没有标准化的“目录”命令(通常存在专有命令)。虽然有一个 EF.DIR,但它只是卡上的应用程序列表(由它们的 AID 表示),它比文件高一级,因此您还需要应用程序规范。阅读也可能需要访问权限,因此之前需要某种身份验证(PIN 或质询-响应测试)。