English version
Юрий Строжевский Разработка на заказ: Альтруизм и помощь людям
Контакты: yury@strozhevsky.com yury.strozhevsky
Free ASN.1:2008 compliance test suite

Занимаясь долгое время работой с 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 данных. Все тесты являются допустимыми вариантами кодирования, то есть все они так или иначе могут быть рано или поздно встречены в реальной работе программы обработки ASN.1 данных. Полный архив со всеми тестами (файлы "tc*.ber"), файлами формата CompliXML (см. ниже) полученными на основе тестов (файлы "transformed_tc*.xml"), повторно закодированными файлами (файлы "encoded_tc*.ber"), а также с кратким описанием всех тестов (файл "free_asn1_testsuite.pdf") можно получить по прямой ссылке.

Первично при составлении вышеупомянутых тестов я использовал только свой личный опыт и собственно стандарт кодирования ASN.1. Однако по мере составления полного списка тестовых случаев все чаще возникал вопрос - как же надо правильно реагировать программе обработки ASN.1 в каждом конкретном случае и вообще возможно ли как-то нормально обработать каждую исключительную ситуацию? Для нахождения ответа на данные вопросы мне пришлось создать свою программу, позволяющую как декодировать ASN.1 BER, так и кодировать такие же ASN.1 BER данные. Все исходные коды этой программы я распространяю совершенно бесплатно и каждый волен использовать эти коды как ему угодно (почти - программа выпущена под BSD license). Программа служит исключительно для тестовых и ознакомительных целей. Ниже приведено более подробное описание моего программного продукта.

Программа называется COMPLI (fully-compliant ASN.1 BER decoder/encoder).

Собственно сам test suite Исходные тексты COMPLI Исполняемый файл COMPLI + XSD схемы + файл конфигурации для набора тестов
Напишите мне! Напишите мне и я обязательно с Вами свяжусь.