智能卡:读取二进制与读取二进制之间的差异偶然

时间:2017-06-21 05:58:39

标签: smartcard

Read Binary与Read Binary EVEN之间的区别是什么。对我而言,它看起来是一样的。

2 个答案:

答案 0 :(得分:4)

我想从简洁的问题来看,你指的是奇数甚至指令代码。注意,即使INS代码也限制为15位起始偏移,从而将可读范围限制为32 KB,而奇数允许在命令数据字段中任意指定。

因此命令具有不同的APDU情况,这对于T = 0来说是一个巨大的差异。但是,奇数指令是一个功能超集,但任意卡可能不支持它。

有关详细信息,请参阅ISO 7816第4部分。

答案 1 :(得分:4)

在早期的ISO / IEC 7816-4版本中,不支持odd-INS B1值。它后来被添加到支持大于32K的偏移量被指定。它还允许在P1 / P2中指定完整的EF标识符,而不是偶数B0版本中的短EF标识符的5位。

奇数INS值存在特定差异:

  

如果位b1设置为1(奇数INS代码),则有效载荷(如果有)应在BER-TLV中编码(见8.1)。

,尤其是READ命令:

  

该组的两个命令(READ,UPDATE)可以使用奇数INS代码(在BER-TLV中编码的数据字段)来启动对给定记录的一部分的动作(部分读取,部分更新)。然后,偏移量应引用记录内的每个字节:对于记录的第一个字节,从0开始,对于记录的每个后续字节,偏移量增加1。对未包含在记录中的字节的引用是错误的。根据需要,偏移数据元素是二进制编码的,并由标记 '54'引用。当存在于命令或响应数据字段中时,数据应封装在自由选择的 DO'53'中(不推荐使用'73')。

它也可能对安全消息传递产生影响:

  

当INS的位b1设置为1(奇数INS代码,见5.5)时,不安全数据字段以BER-TLV编码,SM标签'B2','B3','84'和'85'应用于封装;除非在应用程序级别指定使用标签'80','81','86'和'87'。

实际上,Offset DO(数据对象)的存在使命令成为具有命令数据和响应数据的case 4命令。对于T = 0,这意味着您需要GET RESPONSE来检索响应数据。