Существуют ли какие-либо библиотеки PHP для разбора ASN.1 или генерирования PHP-кода на его основе?

Я уже выглядел сам, но, похоже, мой Google-фу сегодня не силен.

Я работаю над разработкой стандартизованного протокола обмена структурами данных по TCP / IP-соединению между сервером Apache / PHP и встроенным кодом C на микроконтроллере.

Мы используем нотацию ASN.1, и то, что я действительно хотел бы сделать, это иметь часть кода PHP, которая может анализировать документ ASN.1 и использовать его для интерпретации входящих данных. Он создаст объект (или массив) PHP, который структурирован соответствующим образом на основе ASN.1. Цель здесь была бы для PHP, который анализирует документ и создает объекты для агностики специфических документов (т. Е. Не кодируется вручную для соответствия содержимому документа).

В качестве альтернативы, если это невозможно, существует ли что-то, что позволило бы мне создать простые классы объектов передачи данных PHP, которые я мог бы повторно запускать каждый раз при изменении документа протокола ASN.1? Это может быть предпочтительнее с точки зрения эффективности, поскольку вам не нужно будет повторно интерпретировать ASN.1 для каждого входящего запроса.

Благодаря! Сообщите мне, могу ли я предоставить дополнительные разъяснения, которые помогут ответить на этот вопрос.

Попробуйте это: https://web.archive.org/web/20160305171509/http://phpkode.com/source/s/mistpark-server/library/asn1.php .

Это не столько библиотека, сколько скрипт, но вы можете использовать ее как одну.

На всякий случай кто-то ищет ответ на этот вопрос:

Вы можете попробовать PHPASN1 для чистой библиотеки кодирования и декодирования ASN.1 или phpseclib, которая также может обрабатывать ASN.1, но не так сосредоточена на ней.

phpseclib может декодировать структуры ASN.1 одинаково, как это делает asn1parse OpenSSL:

http://phpseclib.sourceforge.net/x509/asn1parse.php

Если вы посмотрите на исходный код, он принимает массив, возвращаемый $ asn1-> decodeBER, и отображает его в строку, которая отображается. Но тот факт, что он идентичен, свидетельствует о силе phpseclib, о которой я думаю.