微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解码 BER TLV

如何解决解码 BER TLV

我在解码此 TLV 时遇到问题

模板标签 (7001) 2 字节

长度标签 (0020) 2 字节

值是另一个 TLV

标签(e101)长度(000f)值(373834313938353338353236313430)

标签(e102)长度(0009)值(0009303931383631393038)

70010020e101000f3738343139383533338353236313430e1020009303931383631393038

当我尝试任何 TLV 解码器时,它仅将模板标记读取为 1 个字节,然后将错过其余部分。你能就如何解析它提出建议吗?顺便说一下,我以 Base64String 的形式接收数据,然后转换为 HEX

解决方法

BER 解码器解释此 TLV 流如下:

byte 1,byte 2,byte 3,byte 4 
T=01110000,L=00000001,V=00000000,<end> 
                          ^ inner TLV,starts with T=0 and no place for LV
              ^ length of the V is 1 byte (!!! this why it ends prematurely !!!)
     ^ 10000=SEQUENCE or SEQUENCE OF tag 16
    ^ 1=constructed tag
  ^ 01=APPLICATION tag

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。