如何在智能卡中读取 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的主要内容,如果未能解决你的问题,请参考以下文章

在django中,如何读取表单数据,执行操作,然后存储到数据库中?

如何在 iOS 应用程序中从蓝牙 LE 设备获取通知

学习MIPS汇编:读取文本并写入文件

le5le-topology智能绘图引擎——学习笔记

用于读取测量数据的蓝牙 LE 配置文件

如何在 Android 中读取智能卡 ATR?