【问题标题】:How to parse ASN.1 value notation format如何解析 ASN.1 值符号格式
【发布时间】:2019-06-05 03:38:24
【问题描述】:

我在一家以 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 中提取信息。价值观?

【问题讨论】:

  • 日志采用 ASN.1 值表示法,而不是 ASN.1 支持的无数有线格式(如 BER、XER 等)中的一种,这有点令人烦恼。是否可以说服发起者以其中一种有线格式发送日志?
  • @bazza 不可能。

标签: asn.1


【解决方案1】:

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

可以从我工作的 OSS Nokalva (https://www.oss.com) 获得这样的工具。这些 ASN.1 工具还支持 XML 编码规则 (XER) 和 JSON 编码规则 (JER),因此您可以根据需要以 JSON 或 XML 格式生成输出。您可以在免费的 ASN.1 Playground 网站 https://asn1-playground.oss.com 上尝试该功能,以查看您尝试解析的日志文件是否是有效的 ASN.1 值表示法。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多