为什么 BER-TLV "DF9A" 标签被识别为 "invalid"?

Why BER-TLV "DF9A" tag is recognized as "invalid"?

我无法理解为什么我找到了所有 BER-TLV 解析器:

识别此标签:DF9A03001736 为“无效”,而:DF5603001736DF0903001736 工作正常。

有什么区别?

只需按照EMV Book 3, Annex B1

中提供的说明进行操作即可

“无效”案例:DF9A03001736

DF - 1101 1111
9A - 1001 1010 - here, in the second byte of the Tag, the b8 is set (1), which means that 'Another byte follows', so the following byte (value 03) is also part of the Tag
03 - 0000 0011 - the last byte of the Tag, i.e. the actual Tag is DF9A03

所以,在我们的序列中我们有:

DF9A03 - Tag
00 - Length (no value)
17 - is already a new Tag
36 - length of the Tag 17 ... 

因此解析器 (https://paymentcardtools.com/emv-tlv-parser) 失败,因为没有可用数据(解析标记 17 时出错:数据不足)

正确示例:DF5603001736

DF - 1101 1111
56 - 0101 0110 - there are no more bytes that constitute Tag, so we just have Tag DF56

顺序是:

DF56 - Tag
03 - Length
001736 - Value