对理解 C-APDU 和 R-APDU 命令的疑问
Posted
技术标签:
【中文标题】对理解 C-APDU 和 R-APDU 命令的疑问【英文标题】:Doubts to understand C-APDU and R-APDU commands 【发布时间】:2017-05-18 20:23:55 【问题描述】:这些天我开始研究 APDU 命令和响应的基本概念,我对 Lc 和数据轨道的使用及其含义有疑问。 例如,如果我编写如下命令: 00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00 我会说他的(如果我错了,请纠正我的情况)
CLA = 等于 00 INS = A4 即 SELECT P1 = 04 他的第一个记录名称 默认为 P2 = 00 Lc = 0E = 14 字节的确切长度 数据 = 我的疑问在哪里 Le = 00 作为默认值,如果它等于另一个值,会发生什么?我的疑问是理解 Lc(确切命令长度)、数据和 Le(最大响应长度)的明确含义,我怎么知道这个数据指令是什么意思?我应该把它变成文本吗?
【问题讨论】:
【参考方案1】:Lc = 0E
表示后面有 14 个字节的数据:
31 50 41 59 2E 53 59 53 2E 44 44 46 30 31
是您的数据(14 个字节)。当您将其解释为 ASCII 值时,您会得到字符串 1PAY.SYS.DDF01
。
字段Le
表示预期响应的字节数(00 = 最大字节数)。
【讨论】:
@Ito 你绝对应该选择这个作为接受的答案!【参考方案2】:6F 15 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 03 88 01 01 90 00 会被解析为
6F 文件控制信息 (FCI) 模板 16 十六进制长度 84 专用文件 (DF) 名称 0E 十六进制长度 315041592E5359532E4444463031 =>1PAY.SYS.DDF01 A5 文件控制信息 (FCI) 专有模板 03 十六进制长度 88 短文件标识符 (SFI) 01 十六进制长度 01 90 00 成功运行简单地说,您可以使用this 来解析您的响应 TPDU :-)
【讨论】:
@MichaelRoland 问题 CAPDU 的第一部分已经回答。我的是第二部分,如何将 R-APDU 解释为 - “在 R-APDU 我已经知道 SW1 和 SW2 负责显示进程状态,我不知道如何解释数据太像在 C-APDU 了。”如您在编辑历史记录中所见,在我回答后对问题进行了编辑。这就是用户接受答案的原因。 问题中没有提到您(或多或少)为您的示例任意选择的 R-APDU(也没有在之前的任何修订版中)。 插图使用例如。更容易理解。还是只适合我? 您的“示例”说明了如何解释一种特定的共鸣格式。它甚至没有试图说明任意 R-APDU 的格式。因此,您的帖子似乎甚至没有尝试回答这个问题。以上是关于对理解 C-APDU 和 R-APDU 命令的疑问的主要内容,如果未能解决你的问题,请参考以下文章