每个班级的APDU 6E00状态

2024-04-27 22:11:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉APDU和智能卡通信,我不知道如何成功地发送APDU命令。例如,当我尝试以下命令时:

00 A4 00 00 02 3F 00 00

我得到一个6E 00响应。我试图弄清楚我必须为我的卡使用哪个类,但是对于我在00-FF范围内尝试的每个类,我总是会得到“class not supported”错误。在

我想这可能和卡上的认证有关,但我不知道怎么做。在

我使用了以下Python(pyscard)代码:

^{pr2}$

编辑: 卡的ATR是3B 04 49 32 43 2E


Tags: 代码命令编辑错误notclassa4supported
3条回答

不是专家,但是看一下the pyscard documentation,我认为你用错了字节。在给定的示例中(您的代码似乎是基于这个示例),它表示

SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02]
DF_TELECOM = [0x7F, 0x10]
data, sw1, sw2 = connection.transmit( SELECT + DF_TELECOM )

其中,A0 A4 00 00 02是命令(不应修改),而7F 10标识要与之对话的卡的类型(根据您拥有的卡类型,这几乎肯定是不同的)。在

试试看:

^{pr2}$

我还发现了一个summary table of commands;希望你觉得有用。在

解决了这个问题,我的卡是一个I2C卡,所以APDU命令不能使用它。我通过OnnISFFT的同步API,通过C++得到了它。不是我想的那样,但到目前为止,这似乎是唯一的选择。在

感谢所有帮助我的人!在

既然您正在尝试发送一个选择APDU,为什么不尝试最简单的一个,即选择颁发者安全域?在

请尝试以下命令:

00 A4 04 00 00

此时不需要关心身份验证。选择应该在所有安全级别下工作。在

相关问题 更多 >