我有一张DESfire Ev1版本1.3卡,我正在尝试使用ISO7816 apdu样式选择文件。
我有一个文件,有A0 A1 A2
,我可以使用原生模式或包裹模式选择它:
本机:
-> 5A A0 A1 A2
<- 00
裹:
-> 90 5A 00 00 03 A0 A1 A2 00
<- 91 00
但是,如果我尝试使用ISO7816样式选择它,我总是会找到一个找不到文件的错误:
ISO7816:
-> 00 A4 04 00 03 A0 A1 A2 00
-> 6A 82
使用ISO apdu时,AID是否采用不同的格式?如何使用它选择此AID?
答案 0 :(得分:0)
来自文档:
此APDU通过其ISO应用程序选择ISO应用程序 标识符(AID)。 DESFire的ISO AID是“0xD2 76 00 00 85 01 00”。 必须传输完整的ISO AID,而不是部分选择 支持的。 DESFire
不支持其他ISO AID
这似乎与您有AID 0xA0 0xA1 0xA2
。
好像你需要发送:
[CLA] [INS] [P1] [P2] [Len(AID)] [AID]
因此:
0x00 0xA4 0x04 0x00 0x07 0xD2 0x76 0x00 0x00 0x85 0x01 0x00
**编辑**
请尝试ISO SELECT DIRECTORY
:
该APDU通过它的三字节DESFire选择DESFire应用程序 应用程序标识符(DESFire AID)。 ...
ISO SELECT DIRECTORY命令的功能兼容 使用本机DESFire“选择应用程序”命令。
所以:
0x00 0xA4 0x04 0x00 0x03 0xA0 0xA1 0xA2
(这是在下一页,可能是你想要的第一个。)
我认为这与你所拥有的相同,最后减去NUL
。