首页 > 解决方案 > 在不知道文件标识符的情况下读取 SmartCard ISO 7816 的文件结构

问题描述

我正在使用 ISO 7816 卡,需要从 MF 开始读取卡的文件结构并跟踪其中的所有子文件。

首先,我从 SELECT 命令开始选择 MF (3F00) 并使用 CLS:0x00 INS:0xA4 P1:0x00 P2:0x06 Le:0x00 读取其 FCP 模板

它响应我 SW1:61 SW2:XX 信息,然后我使用 GET RESPONSE 命令和 CLS:0x00 INS:0xC0 P1:0x00 P2:0x00 Le:XX 并获得 TLV 格式的响应,并设置了所有 FCP 参数文件

现在对于选定的文件,即MF:3F00,如何在不知道其文件标识符的情况下选择直接子文件,然后再选择其相应的子文件以遍历整个文件结构。

我的问题是,对于文件选择,当我使用 P1 作为 0x01(选择子 DF)或 0x02(选择 EF)时,它给我的错误是 6700 错误长度,因为我需要传递 DF/EF 标识符,但我不知道文件标识符,那么我在哪里可以读取子文件的文件标识符?

标签: smartcardiso-7816-4

解决方案


具有标准化功能的唯一选择是遍历所有可能的文件标识符。如果响应指示 DF,请记住以后的递归并立即选择父级以完成关卡。可能存在一些专有命令,这允许更有针对性的方法。

一般来说,我不相信所有现有文件 ID 的知识过于有用,因为这并不意味着您可以对文件做任何事情。对于下一步,无论如何您都需要一些信息,并且从一开始就正确获取信息可以节省无聊的工作。


推荐阅读