Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - какие побочные эффекты могут быть у system? / 5 сообщений из 5, страница 1 из 1
02.08.2013, 10:25
    #38352498
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - какие побочные эффекты могут быть у system?
Есть такой sh-скрипт:
Код: plaintext
/data/gost-ssl/bin/openssl smime -sign -in /tmp/request.xml -out /tmp/request.tpl -signer /data/gost-ssl/key/provider.pem -outform DER

Есть такой pl-скрипт (переменные имеют такие же значения, что в предыдущем скрипте):
Код: plaintext
system('/data/gost-ssl/bin/openssl smime -sign -signer /data/gost-ssl/key/provider.pem -outform DER -in /tmp/request.xml -out /tmp/request.sig2');

Почему-то файлы request.sig1 и request.sig2 различаются (размер одинаковый, различается 65 байт из 3029).
Отчего такое может быть?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
02.08.2013, 15:45
    #38353216
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - какие побочные эффекты могут быть у system?
Alibek B.,

От того, что скрипты разные.
...
Рейтинг: 0 / 0
03.08.2013, 04:28
    #38353751
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - какие побочные эффекты могут быть у system?
В чем же их разница? Порядок аргументов для OpenSSL не важен.
...
Рейтинг: 0 / 0
03.08.2013, 04:44
    #38353752
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - какие побочные эффекты могут быть у system?
Alibek B.,

Предположу что openssl чувствует переменные окружения. Наверняка они различаются при вызове из консоли и из скрипта. Но вот как openssl на них реагирует (или должен реагировать) - это не подскажу. Может ответ и кроется в этих 65 байтах.
...
Рейтинг: 0 / 0
03.08.2013, 06:31
    #38353757
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - какие побочные эффекты могут быть у system?
Оба скрипта (bash и perl) я запускал интерактивно, под одним и тем же пользователем, в одном и том же окружении.

По поводу 65 байтов — это видимо дата и время подписания. Они меняются при каждом подписании.

По поводу ошибки тоже выяснилось.
Скрипт я генерировал в perl-скрипте, который отлаживал на рабочей машине (Windows, ActivePerl), а запускал на сервере (FreeBSD).
При этом xml-файл, который я подписывал, первоначально был сгенерирован в Windows. В качестве разделителей строк там использовался <CR><LF>. Когда же на сервере запускался pl-скрипт, он повторно генерировал xml-файл и в этом файле строки разделялись <LF>.

Веб-сервис, на котором я тестировал подпись ( http://www.gosuslugi.ru/pgu/eds) как выяснилось обладает своими особенностями — если текстовый файл в формате unix (строки разделяются <LF>) подписать и проверить подпись, то подпись будет признана недействительной. Если же текстовый файл преобразовать в windows (строки разделяются <CR><LF>) и подписать, тогда подпись будет признана действительной.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - какие побочные эффекты могут быть у system? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]