首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个ASN.1语法正确吗?

这个ASN.1语法正确吗?
EN

Stack Overflow用户
提问于 2020-06-09 11:40:24
回答 1查看 245关注 0票数 0

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

可悲的是,当我试图在Wireshark的远程操作-信息对象( https://github.com/wireshark/wireshark/tree/master/epan/dissectors/asn1/ros )上使用它时,它失败了,出现了以下错误:

代码语言:javascript
复制
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相当陌生,所以我想问一下

代码语言:javascript
复制
(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结构的东西替换这个表达式吗?
EN

回答 1

Stack Overflow用户

发布于 2020-06-09 13:05:28

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

是。

要验证它,请将ros文件夹中的3个文件的内容复制到https://asn1.io/asn1playground/的左侧框(模式)中,然后点击compile

是某种扩展吗?

这取决于你所说的延伸是什么意思。

ASN.1是一组文件。免费工具通常限制在Basic Notation (文档x.680)和一些Encoding Rules (文档x.690,x.691等)。

您正在使用的工具是Information Object Specification (Documentx.681)。如果您找到一个开放源码工具来正确地处理它,请在这里添加一个评论(我非常感兴趣)

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

不是

如果您移除约束,您仍然会发现许多其他的产品不会被解析(操作、参数化类型)。

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

编辑:

看这个文件https://github.com/wireshark/wireshark/blob/master/epan/dissectors/asn1/ros/ros.asn

他们已经删除了所有的信息对象,并将它们替换为废弃的ASN.1类型

代码语言:javascript
复制
bind-invoke  [16]  --OPERATION.&ArgumentType({operation})-- ANY

也许这就是该用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62281770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档