当我向智能卡发送命令时,6E 00 的含义是什么?

5

我正在尝试通过C++访问智能卡。已经获得了连接和卡句柄。

但是,当我通过SCardTransmit发送APDU命令时,我会从卡上得到6E 00作为答案。无论我发送哪个APDU命令。

例如:

  • FF CA FA 00 00(卡的ATR - 复位应答)或
  • FF CA FF 82 00(产品名称的ASCII码)

当我使用像“PC/SC Diag”这样的PC / SC测试工具发送命令时,情况也是一样的。

有人知道这个错误代码的含义以及如何解决问题吗?

请帮帮我!;-)

3个回答

7
根据ISO 7816-4,0x6E00的含义为“不支持的类”。请确定您在APDU中使用了正确的CLA值。CLA(类)字节通常为0x00、0xA0、0xC0或0xF0,并且有时会被掩码为0x0C,这表示某些卡上的安全消息。据我所知,唯一无效的CLA值是0xFF。但是这因卡而异,您是否有来自供应商的卡规范?

啊,好的,当我使用0C或00时,我得到了另一个错误代码6A 86。我在哪里可以找到错误代码列表?我没有供应商的规格说明。 - Pusher
在向卡发送APDU之前,您应该先阅读ISO 7816-4标准 - Jonas Engström
1
好的,谢谢。我保证会阅读它。但是我只想从卡中得到一个答案,以便我知道一切都正常工作。你能告诉我一个简单的APDU命令吗? - Pusher
最简单的APDU命令可能是GET CHALLENGE,它将请求卡片提供随机数据。 CLA=卡片特定。 INS=0x84 P1=0x00 P2=0x00 LE=您想要的字节数(对于短APDU,最多为0xFF)。 - Jonas Engström

1

0

BasicCard PDF手册在第152-153页列出了错误代码列表。

你得到的那个被描述为“未识别命令的CLA字节”。

“6A 86”很可能是对特定卡片命令的响应,我在BasicCard列表中没有看到它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接