情况如下所示,
我有一个BER编码(十六进制)文件,我想按照BER解码数据
规则。我可以使用“pyasn1”解码大多数标记,但不能使用此规则解码特殊标记,例如:9F 1F
。在
如何解码而不出错?
提示:它是数据的“OctetString”表示。在
示例代码:
class MYData(univ.Set):
tagSet = baseTagSet = tag.initTagSet(tag.Tag(tag.tagClassContext,
tag.tagFormatSimple, 21))
componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('SampleField', univ.OctetString().subtype(
implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 31)))
)
那么,如何使用pyasn1表示9F1F
的typeID?在
我可以用以下方法解码你的底片:
也就是说,它看起来像是两个项目的连接,而不是类似记录的结构。在
你的代码对我来说就是这样。9f1f标记看起来太大了,无法容纳一个八位字节,因此它编码为两个。因为它是一个隐式标记,它取代了原来的标记。除此之外,我看不出它有什么特别之处。在
总之,这是我的Python控制台:
我使用的是最新的pyasn1版本from here。请澄清到底什么不起作用?在
相关问题 更多 >
编程相关推荐