如何在智能卡中读取 Le Length 0x0000
Posted
技术标签:
【中文标题】如何在智能卡中读取 Le Length 0x0000【英文标题】:How to Read Le Length 0x0000 in Smart Card 【发布时间】:2012-11-01 01:36:16 【问题描述】:基于响应 APDU。我收到 61XX,这表明我可以读取 XX 个字节(长度 0x00)。我想知道,如果我想读取 Le 中的 0x0000,总是会得到最大 61FF,其中 256 个字节可用。
是否可以读取命令APDU中的0x0000长度并全部接收?
【问题讨论】:
【参考方案1】:在这种情况下,您可能希望使用 T=1,这意味着没有 61XX 答案(这是 T=0 的属性)
【讨论】:
OO,我想知道什么 T=1 T=0 协议。会尝试的。谢谢。【参考方案2】:61xx 建议您当前使用 T=0。是否也支持 T=1(这不确定,但可能),在 ATR 中编码,但在没有 7816-3 知识的情况下很难由人类推导出)。问题是,61 xx 只提供一个字节。您现在可以采用两种方法:
(谨慎)要么你尝试发送一个给定的 GET RESPONSE 值,它可能再次返回 61 xx 状态代码。
(渐进式)使用扩展长度的 LE 编码(不是 所有卡都支持它,但 61 xx 并不意味着您的卡 没有)。
【讨论】:
T=0 但是,据我所知,T=0 不支持扩展长度【参考方案3】:正如您所提到的,“61xx”意味着您只能从 ICC 获取“xx”字节数据。返回的数据字节数由ICC控制,除非你想从ICC获取更少的数据(即
正如 Martin 所说,“61xx”只出现在 T=0 协议中。对于T=1,永远不会出现这样的状态字。
【讨论】:
例如,如果我传输长度为 0x0111,我会得到什么可能的响应?预告片可能是什么? 抱歉不同意。虽然不常见,但在 T=1 中完全允许 61 xx,参见 7816-4(2005 版),命令 GET DATA,或者简单地说,即使对于支持扩展长度 APDU 的卡,也比当前 I/O 缓冲区。以上是关于如何在智能卡中读取 Le Length 0x0000的主要内容,如果未能解决你的问题,请参考以下文章