- PVSM.RU - https://www.pvsm.ru -
Ранее я уже представлял на данном ресурсе свою статью ASN.1 простыми словами [1]. Теперь я бы хотел представить свой новый труд — свободно распространяемый набор тестов для проверки совместимости со стандартом ASN.1:2008. А точнее даже два своих труда — как дополнение к предлагаемому набору тестов я предлагаю свой собственный ASN.1 BER кодировщик/декодировщик (в исходных текстах), который на 100% удовлетворяет требованиям предлагаемого мною набора тестов. Ниже дано более подробное описание всего комплекса.
Занимаясь долгое время работой с ASN.1 постоянно сталкиваешься с необходимостью применения программы кодирования/декодирования (специальной программы работы с ASN.1). Однако не смотря на общедоступность стандарта ASN.1 различные программы работы с ASN.1 подчас производят различные результаты. Зачастую даже известные (и платные!) программы допускают ошибки при работе со стандартными типами ASN.1, что является следствием упущений в тестировании программы или следствием неполного понимания всех аспектов стандарта ASN.1.
Для решения данной проблемы, казалось бы, достаточно одного, централизованно разработанного набора тестов для каждого из типов ASN.1. Однако разбираясь с этим вопросом я обнаружил, что в свободном доступе таких тестов нет. Вообще. По моей информации все-таки такие тесты существуют, но они либо закрытые, либо платные и тестирование по таким тестам производится только на специальных площадках в аттестованных организациях. Но что делать обычному разработчику например нового, свободно распространяемого ASN.1-компилятора? Именно для помощи всем желающим создавать что-то новое для работы с данными в стандарте ASN.1, а также для всех желающих изучить данный стандарт мною был сделан набор тестов, достаточно полно охватывающий вопросы кодирования для типов данных ASN.1.
Набор тестов решает следующие задачи:
Собственно сами тесты представляют из себя бинарные файлы с закодированными данными в формате ASN.1 BER. Все тесты являются допустимыми вариантами кодирования, то есть все они так или иначе могут быть рано или поздно встречены в реальное работе программы обработки ASN.1 данных. Полный архив со всеми тестами (файлы «tc*.ber»), файлами формата CompliXML (см. ниже) полученными на основе тестов (файлы «transformed_tc*.xml»), повторно закодированными файлами (файлы «encoded_tc*.ber»), а также с кратким описанием всех тестов (файл «free_asn1_testsuite.pdf») можно получить по прямой ссылке.
Для облегчения работы с предлагаемым набором тестов предлагается также сводное текстовое краткое описание каждого тестового случая, вместе с тестируемым типом данных, а также кратким описанием предлагаемых действий программы обработки ASN.1 данных.
Первично при составлении вышеупомянутых тестов я использовал только свой личный опыт и собственно стандарт кодирования ASN.1. Однако по мере составления полного списка тестовых случаев все чаще возникал вопрос — как же надо правильно реагировать программе обработки ASN.1 в каждом конкретном случае и вообще возможно ли как-то нормально обработать каждую исключительную ситуацию? Для нахождения ответа на данные вопросы мне пришлось создать свою программу, позволяющую как декодировать ASN.1 BER, так и кодировать такие же ASN.1 BER данные. Все исходные коды этой программы я распространяю совершенно бесплатно и каждый волен использовать эти коды как ему угодно (почти — программа выпущена под BSD license). Программа служит исключительно для тестовых и ознакомительных целей. Ниже приведено более подробное описание моего программного продукта.
Программа называется COMPLI (fully-compliant ASN.1 BER decoder/encoder).
Сначала об ограничениях программы:
Теперь более подробно об особенностях программы:
В итоге после создания программы COMPLI мне удалось реализовать следующие задачи:
Программа будет еще расти и расширяться. В настоящий момент она позволяет кодировать в/из для следующих форматов:
Исходные тексты COMPLI [4]
Исполняемый файл COMPLI + XSD схемы + файл конфигурации для набора тестов [5]
Эта же статья в виде PDF [6]
Автор: ystr
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/setevy-e-tehnologii/16211
Ссылки в тексте:
[1] ASN.1 простыми словами: http://habrahabr.ru/post/150757/
[2] ссылка на файл XSD: http://www.strozhevsky.com/free_docs/CompliConfig.xsd
[3] ссылка на файл XSD: http://www.strozhevsky.com/free_docs/CompliXML.xsd
[4] Исходные тексты COMPLI: http://www.strozhevsky.com/free_docs/COMPLI.zip
[5] Исполняемый файл COMPLI + XSD схемы + файл конфигурации для набора тестов: http://www.strozhevsky.com/free_docs/TEST_SUITE.zip
[6] Эта же статья в виде PDF: http://www.strozhevsky.com/free_docs/free_asn1_testsuite_descr_rus.pdf
Нажмите здесь для печати.