Как разобрать формат записи значения ASN.1 - PullRequest
0 голосов
/ 05 июня 2019

Я работаю в компании, которая получает журналы в формате нотации значений ASN.1. Мне нужно настроить парсер для извлечения данных из этого. Я пробовал наивные регулярные выражения, но я хотел бы попробовать метод, с помощью которого я мог бы извлечь данные из таких файлов, например, файл JSON / XML.

Например: для файла, подобного этому,

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

Я бы хотел разобрать это,

Корневой узел (Rocket)

Значение узла (name) = "Сокол"

Другой узел, который инкапсулирует полезную нагрузку массива ("Автомобиль," GPS ")

Как это сделать? Любые библиотеки или методы будут полезны. Как в этом случае помогает схема для этого? И как проверить asn.1 по схеме и извлечь информацию из asn1. значения?

1 Ответ

0 голосов
/ 05 июня 2019

Самый простой способ разбора нотации 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 значение записи.

...