对理解 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 命令的疑问的主要内容,如果未能解决你的问题,请参考以下文章

mobx理解和疑问小结

对SSL一个疑问的新理解

关于“理解 Keras LSTMs”的疑问

从网友对 MySQL 手册的一个疑问聊起

对NIO和BIO的进一步理解

对NIO和BIO的进一步理解