ASN1C DER декодер - PullRequest
       93

ASN1C DER декодер

2 голосов
/ 22 февраля 2012

Я пытаюсь создать простой декодер DER - консольное приложение, которое просто выводит содержимое заданной структуры данных (закодировано в формате DER, например , это ).

У меня проблемы с запуском этого примера: A '' Rectangle '' Decoder .

Я пытаюсь скомпилировать его с MSVC, и у меня проблемы с #include <inttypes.h> и #include <netinet/in.h>. Также тип ssize_t не определен.

Вот что я сейчас сделал:
1. На Online ASN.1 Compiler Я вставил этот код в текстовое поле:

RectangleModule1 DEFINITIONS ::=
BEGIN

Rectangle ::= SEQUENCE {
    height  INTEGER,
    width   INTEGER
}

END

2. Я выбрал «Использовать собственные типы машин» и «Варианты поддержки PER» * .
3. Это «Скомпилировано ОК» , поэтому я скачал этот вывод .tgz
4. Создал пустой проект в Visual Studio 2010, перетаскивая исходные файлы, извлеченные из этого .tgz
5. Установите дополнительный каталог включения в каталог «skeletons» ASN1C
6. Пытался его построить.

Чего мне не хватает?

Любая помощь будет оценена

Ответы [ 2 ]

2 голосов
/ 22 февраля 2012

Проблема в том, что код, сгенерированный ASN1C, должен быть изменен, чтобы скомпилировать его с MSVC и использовать его в среде Windows.

  1. #include <inttypes.h> следует заменить на #define ssize_t SSIZE_T
  2. #include <netinet/in.h> следует заменить на #include <Winsock2.h>
  3. , ключевое слово inline следует удалить из static функций, определенных в asn_internal.h

После этого всеотлично работает;)

0 голосов
/ 22 февраля 2012

Убедитесь, что у вас есть правильный файл определения ASN. Затем перейдите по ссылке http://lionet.info/asn1c/asn1c.cgi

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

...