APDU 命令读取二进制命令与文件结构不兼容

Posted

技术标签:

【中文标题】APDU 命令读取二进制命令与文件结构不兼容【英文标题】:APDU Command Read Binary command incompatible with file structure 【发布时间】:2016-07-12 09:12:42 【问题描述】:

我正在尝试使用 read binary apdu 命令从智能卡中读取二进制文件。我在我编写的 c# 程序中执行此操作。 首先,我发送 loadKey- 和 authenticate-command。展位返回 90-00,所以他们应该工作正常。但是当我尝试发送读取二进制命令时,它返回 69-81,它代表“与文件结构不兼容的命令”。 奇怪的是,如果我对 Omnikey 6321 USB 读卡器使用相同的命令,一切正常,但使用 TWN4 Legic USB 读卡器会出现上述问题。

有人可以帮我解决这个问题吗? :)

这是我发送到智能卡的 APDU 命令的代码:

cmdReadBinary = new CmdApdu();
        cmdReadBinary.CLA = 0xFF;
        cmdReadBinary.INS = 0xB0;
        cmdReadBinary.P1 = 0x00;
        cmdReadBinary.P2 = 0x00;
        cmdReadBinary.Le = 0x10;

scard.Transmit(commands.CmdReadBinary.GetBytes(), commands.CmdReadBinary.GetBytes().Length, respApdu, ref respLength);

【问题讨论】:

【参考方案1】:

我解决了这个问题。 我使用了错误的身份验证命令。 将身份验证的 INS 更改为 0x86 后,现在一切正常

【讨论】:

以上是关于APDU 命令读取二进制命令与文件结构不兼容的主要内容,如果未能解决你的问题,请参考以下文章

使用 APDU 命令以线性固定结构写入记录

Python Pandas 如何从命令行读取 C++ 结构二进制文件

发送 APDU 命令以读取被动标签?

APDU 命令读取 SLE4432/42 卡

命令 APDU 在结果中返回 6985(不满足使用条件)

如何使用 APDU 命令从 PoS 终端读取 MCC 代码