这是正确的ASN.1语法吗?

问题描述 投票:0回答:1

有一个很好的ASN.1工具叫做asn1c ( https:/github.comvlmasn1c ).

遗憾的是,当我尝试在Wireshark的Remote-Operations-Information-Objects ( https:/github.comwiresharkwiresharktreemasterepandissectorsasn1ros。 ),却出现了以下错误。

ASN.1 grammar parse error near Remote-Operations-Generic-ROS-PDUs.asn:20 (token "!"): syntax error, unexpected '!', expecting ')'
Cannot parse "Remote-Operations-Generic-ROS-PDUs.asn"

因为我对ASN. 1还很陌生,我想问一下,如果这个...

(CONSTRAINED BY { -- must conform to the above definition --} !
 RejectProblem:general-unrecognizedPDU)

实际上是一个正确的ASN.1。 我猜是的,因为Wireshark的工具ans2wrs.py成功解析了它。据说这两个工具都支持2002年版本的ASN.1。

那么。

  1. 这是正确的ASN. 1()吗?
  2. 是某种扩展吗?
  3. 其实我可以用不会改变结果的C结构的东西来代替这个表达式吗?
asn.1
1个回答
2
投票

这是正确的ASN.1()吗?

是的。

要验证它,请将3个文件的内容复制到 ros 文件夹的左侧框中(模式)。https:/asn1.ioasn1游乐场。 并打 compile

是某种延伸吗?

这要看你所说的扩展是什么意思。

ASN.1是一组文件。免费工具通常只限于 Basic Notation (x.680号文件)和一些 Encoding Rules (x.690、x.691等文件)

你所使用的工具所扼制的符号是 Information Object Specification (x.681号文件)。如果你找到一个能正确处理它的开源工具,请在这里添加评论(我非常感兴趣

其实我可以用不会改变结果的C结构的东西来代替那个表达式吗?

不可以

如果你去掉约束,你仍然会发现很多其他的制作不会被解析(OPERATION,参数化类型)。

要了解更多关于信息对象的信息。

EDIT:

看这个文件 https:/github.comwiresharkwiresharkblobmasterepandissectorsasn1rosros.

他们把所有的信息对象都剥离出来,用废弃的ASN.1类型ANY代替。

bind-invoke  [16]  --OPERATION.&ArgumentType({operation})-- ANY

可能是这个要用。

© www.soinside.com 2019 - 2024. All rights reserved.