如何解析ASN.1值表示法格式

时间:2019-06-05 03:38:24

标签: asn.1

我正在为一家以ASN.1值表示法格式获取日志的公司工作。我需要设置一个解析器以从中提取数据。我已经尝试过使用朴素的正则表达式,但是我想尝试一种可以从此类文件(例如JSON / XML文件)中提取数据的方法。

例如:对于这样的文件,

value Rocket ::= {
  name "Falcon",
  -- use default for the message --
  fuel solid,
  speed mph : 18000,
  payload {
    "Car",
    "GPS"
  }
}

我想解析一下

根节点(Rocket)

值节点(名称)=“猎鹰”

另一个封装数组有效负载的节点(“汽车”,“ GPS”)

如何执行此操作?任何库或方法都将有所帮助。 在这种情况下,具有用于此目的的架构如何帮助?以及如何根据模式验证asn.1并从asn1中提取信息。值?

1 个答案:

答案 0 :(得分:0)

解析这样的ASN.1表示法的最简单方法是使用商用的ASN.1工具,该工具支持在运行时(而不仅仅是在编译时)解析ASN.1值表示法。请注意,您仍然需要ASN.1类型定义的值,而不仅仅是值符号。

可以从我所工作的OSS Nokalva(https://www.oss.com)获得一种这样的工具。这些ASN.1工具还支持XML编码规则(XER)和JSON编码规则(JER),以便您可以根据需要生成JSON或XML的输出。您可以在免费的ASN.1游乐场网站https://asn1-playground.oss.com上试用该功能,以查看您要解析的日志文件是否为有效的ASN.1值符号。