Pyasn1 BER编码带回车符\ r \ n

时间:2013-01-31 12:23:15

标签: python asn.1

我正在处理BER编码的呼叫数据记录(CDR)。来自GPRS隧道协议。其中我有一个字段值'\r\n'

'\xa0\x06\x80\x04\r\n\xc4\x086' - 这是导致问题的编码字符串或bytearray。它包含标签 a0 所需的所有TLV信息,其长度为 06 。内部标记 80 ,其长度 04 。但是如果我们以下面的方式获取输出,它会像这样打印。

内部标记 80 的值导致问题。它的长度 04 但是当我们使用pyasn1对其进行解码时,长度变为 05 ,因为它分别计算\r\n。我认为编码此数据的编码器假设\r\n是单个元素。但是在使用pyasn1对此进行解码时,由于编码值的TLV表示上缺少长度而导致错误。

map(ord, '\xa0\x06\x80\x04\r\n\xc4\x086')
[160, 6, 128, 4, 13, 10, 196, 8, 54]

我们正在使用隐式标签号。

有没有办法用pyasn1的解码器和编码器来解决这个问题。

谢谢和问候,

Haridas N。

1 个答案:

答案 0 :(得分:1)

我不熟悉pyasn1,但我建议关注进来的数据,因为对我来说这表明有些事情应该将二进制字节集视为文本...

如果内部标签真的是len 4,那么\ n \ n已被\ r \ n?

取代