LINUX.ORG.RU

ASN.1 PER сериализация

 , , ,


0

2

Добрый вечер

Приходит строчка в ASN.1 PER, надо ее десериализовать/распарсить/распаковать...
Известны типы данных которые могут быть упакованы
Языки С/С++/Java

Гугл говорил о компиляторах, чудовищних стандартах...

Что посоветуете?


Прочитать спецификацию на PER (она небольшая) и запрограммировать, мазафака.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Разве нету готовых решений? ненагуглила ничего полезного

nyka
() автор топика
Ответ на: комментарий от tailgunner

Строка не одна, их пара сотен с разными наборами данных.
Просто странно что нет готовых решений.

nyka
() автор топика
Ответ на: комментарий от nyka

готовых вал на самом деле. я когда-то озадачивался, но понял, что проще самому написать. Там вся спецификация - пора десятков страниц.

anonymous
()
Ответ на: комментарий от nyka

Одна, пара сотен или пара сотен миллионов - неважно, пока это всего лишь строка.

tailgunner ★★★★★
()
Ответ на: комментарий от i-rinat

Использовать OpenSSL ради декодирования ASN1 - идея так себе.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Посмотрела все это и понимания не прибавилось. По мне так есть библиотека которая занимается распаковкой, отдаешь ей в запакованном виде и получаешь массив объектов/структур. А тут какие-то asn-компиляторы, кроме того все платное...

nyka
() автор топика
Ответ на: комментарий от nyka

А тут какие-то asn-компиляторы, кроме того все платное...

Лол. Платных там только одна.

Нет готовой распространенной либы, потому что это не ахти какая задача - написать свой парсер/сериализатор на коленке за один вечер...ну ладно, у меня около недели ушло все почитать, написать и отладить.

anonymous
()
Ответ на: комментарий от anonymous

Задача такова что нужно парсить не менее сотни структур и неизвестно какая именно структура с каким набором данных приходит на парсинг

nyka
() автор топика

О чем тут говорить. Говорим - ASN.1, подразумеваем - asn1c

Почитай, что такое ASN.1 и поймешь, зачем нужен компилятор

Deleted
()
Ответ на: комментарий от anonymous

Нет готовой распространенной либы, потому что это не ахти какая задача - написать свой парсер/сериализатор на коленке за один вечер...ну ладно, у меня около недели ушло все почитать, написать и отладить.

Пришли пацаны с района, как я посмотрю. Класс тоже за вечер-два распарсишь?

UVV ★★★★★
()
Ответ на: комментарий от UVV

Класс тоже за вечер-два распарсишь?

какой класс, болезный? Тут разговор за бинарный блоб и парсинг его в понятные структуры.

anonymous
()
Ответ на: комментарий от anonymous

Бинарный PER без схемы парсить как будешь? Хочу кулсторииуслышать, для поднятия квалификации тыкксказать

UVV ★★★★★
()
Ответ на: комментарий от anonymous

Так... мальчики, не ссорьтесь)
Отписала человеку который будет слать строки ASN.1 PER и жду разъяснений

nyka
() автор топика
Ответ на: комментарий от anonymous

Можешь слить ему любые валидные асн1.данные.

Дык «This page contains a JavaScript generic ASN.1 parser that can decode any valid ASN.1 DER or BER structure», а вот на разбор именно PER без схемы данных очень бы хотелось посмотреть. В особенности на случаи с unaligned PER.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

Долбаная спецификация!!!))
На этапе проектирования 10 раз в день о JSON говорила, 20 раз говорила. Появился какой-то хрен с горы в больших очках и все в шоке. Никто толком не понимает нафиг это надо, но «сверху» считают что это сэкономит траффик, что-то там разгрузит и отобьет желание школоты реверсить.
Сykи...

nyka
() автор топика
Ответ на: комментарий от nyka

Появился какой-то хрен с горы в больших очках и все в шоке. Никто толком не понимает нафиг это надо, но «сверху» считают что это сэкономит траффик, что-то там разгрузит и отобьет желание школоты реверсить.

Ну так попросите этого хрена с горы оценить риски/сроки/стоимость с учетом притаскивания ASN.1 в проект:

  • команда ASN.1 не знает. Следовательно, нужно время на изучение;
  • из-за отсутствия у команды опыта использования ASN.1 обязательно всплывут косяки, на устранение которых будет уходить и время, и деньги;
  • если закладываться не на OpenSource-реализацию ASN.1 компилятора, а на коммерческий продукт, то добавляется a) стоимость лицензии и b) vendor lock (насколько я помню, для ASN.1 нет стандартов отображения спецификации в язык программирования и каждый инструмент транслирует спецификацию в свой собственный набор классов из-за чего сменить ASN-компилятор означает переписать часть проекта);
  • ASN.1 редко используется в современном мире (за пределами тех областей, где ASN.1 де-факто стандарт из-за легаси), соответственно, стоимость сопровождения софта будет выше, перспективы интеропа хуже и т.д.

Хотя, может у вас задачи такие, что выигрыш от компактности и скорости работы с PER-представлением данных перевешивает это все. Но тогда странно, что такими задачами занимаются люди, которые про ASN.1 не знают.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Описала руководству проблемы с примерно таких же позиций, ASN.1 байкотирован)
Переходим на JSON, Проблема ASN.1 отпадает.
Проблема грамотных и здравомыслящих системных архитекторов как никогда остра))

nyka
() автор топика
Ответ на: комментарий от nyka

Переходим на JSON
Проблема грамотных и здравомыслящих системных архитекторов как никогда остра

Ну да, ну да.

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.