Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите написать маленькую программку. помогите...(( 
:(
    Опции темы
Cyr
Дата 10.3.2014, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата(arto @ 10.3.2014,  15:37)
btw, что такое ber? Berber language (ISO 639 alpha-3, ber)?
может der http://en.wikipedia.org/wiki/Distinguished...es#DER_encoding?

если моя догадка верна, то вот вам бесплатная подсказка:
# openssl x509 -in CERT1.pem -outform DER | perl -0777 -MConvert::ASN1=asn_dump -lne 'asn_dump($_)' 
0000  802: SEQUENCE {
0004  721:   SEQUENCE {
0008    3:     [CONTEXT 0] {
000A    1:       INTEGER = 2
000D     :     }
000D   10:     INTEGER = -1
0019    8:     SEQUENCE {
001B    6:       OBJECT ID = 1.2.643.2.2.3
0023     :     }
0023  101:     SEQUENCE {
0025   32:       SET {
0027   30:         SEQUENCE {
0029    9:           OBJECT ID = 1.2.840.113549.1.9.1
0034   17:           [UNIVERSAL 22]
0036     :             69 6E 66 6F 40 63 72 79 70 74 6F 70 72 6F 2E 72 [email protected]
0046     :             75 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ u
0047     :         }
0047     :       }
0047   11:       SET {
0049    9:         SEQUENCE {
004B    3:           OBJECT ID = 2.5.4.6
0050    2:           [UNIVERSAL 19]
0052     :             52 55 __ __ __ __ __ __ __ __ __ __ __ __ __ __ RU
0054     :         }
0054     :       }
...

arto, у меня бинарник (пакет) от АТС. Протокол там CSTA (ASN.1 ber). есть даже файл с определениями asn1.
Сколько не бился, сколько не пробовал готовые pm. не выходит ни фига. утилитой unber из asn1c я получил тоже что и вы мне тут показали. Но надо перлом эту структуру ещё заполнить определениями из файла asn1.

Это сообщение отредактировал(а) Cyr - 10.3.2014, 15:52
PM MAIL   Вверх
arto
Дата 11.3.2014, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



В дистрибутиве Convert::ASN1 идёт пример x509decode, он рабочий:

# perl x509decode server-cert.der
$VAR1 = {
  "signature" => [
    "\"\254\263\240g\353\302\@6\232Vq \374.K=\333\261\203\363\226Z3\233\3333\336R\334\234\2006x\233\343\220\352c\314\f\254\17\275\1 &\217G'\203#\251\220\266\256\\\330< '\312\4\264^\233\205\3744\257^\221`;\322\337\267\6\256\343\1\t\37\211\257\n\30\n?\357C\326=n\26t2\263\6\360\212\364\200a\367\361\203\205\350,\35\270\203\366\201\207\263\315+\13\210\32\371?\25w;\314",
    1024
  ],
  "tbsCertificate" => {
    "subject" => {
      "rdnSequence" => [
        [
          {
            "type" => "2.5.4.6",
            "value" => {
              "printableString" => "DE"
            }
          }
        ],
        [
          {
            "value" => {
              "printableString" => "Bayern"
            },
            "type" => "2.5.4.8"
          }
        ],
...

Посмотрите и сделайте, как там описано, должно помочь.

ps. для asn.1 схему для гостового сертификата не нашёл, поэтому использовал стандартный rsa сертификат.
PM MAIL ICQ   Вверх
Cyr
Дата 11.3.2014, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



arto, давай начнём сначала.
Вот мой код (бинарник обрабатываемого пакета прикрёплён к сообщению):
Код

use Convert::ASN1;
use Data::Dumper; 
open (infile, "114-111.bin") or die "Ошибка открытия файла: $!";
read infile, $head, 2; # первые 2 байта - длина
$len = unpack('n',$head);
read infile, $pdu, $len;
close infile;
my $decode_pdu = Convert::ASN1->new;
#$Data::Dumper::Indent = 1;
print Dumper( $decode_pdu->decode($pdu)); 

выводит
$VAR1 = undef;
что я делаю не так?

Это сообщение отредактировал(а) Cyr - 11.3.2014, 11:50

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  114_111.bin 0,08 Kb
PM MAIL   Вверх
arto
Дата 11.3.2014, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



Net::CSTA и Net::CSTA::ASN не помогут?
PM MAIL ICQ   Вверх
Cyr
Дата 11.3.2014, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата(arto @ 11.3.2014,  15:22)
Net::CSTA и Net::CSTA::ASN не помогут?

Может и помогут, только я не знаю с какой стороны к ним подступить ?
Как ими декодировать бинарник?
PM MAIL   Вверх
arto
Дата 12.3.2014, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



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

PM MAIL ICQ   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.