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