Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline avtotest  
#1 Оставлено : 18 февраля 2022 г. 10:37:10(UTC)
avtotest

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.02.2022(UTC)
Сообщений: 5

Pасширение phpcades падает в режиме веб-сервера, а в консоли работает.
Сервер - Debian-8-x86_64
При подписании строки методами:

$sd->SignCades( $signer, CADES_X_LONG_TYPE_1, 0, ENCODE_BASE64 );
$sd->Sign( $signer, 0, ENCODE_BASE64 );

возникает ошибка 500( Internal Server Error ).

Сades падает с ошибкой:
www-root: <capi20>CryptMsgGetParam!() Exception :'Error 0xea.' at file:'../../../CSPbuild/CSP/capilite/CMSMessage.h' line:250

Если запускать скрипт через консоль или обертку, то он отрабатывает корректно.

Кроме этого при подписании HASH методом
$sd->SignHash( $hash, $signer, CADES_X_LONG_TYPE_1, ENCODE_BASE64 );
выдается ошибка -> The parameter is incorrect. (0x80070057).

Непонятно к чему она относится. Все параметры передаются коректно.
Подскажите, где собака зарыта?

Отредактировано пользователем 18 февраля 2022 г. 10:46:50(UTC)  | Причина: Не указана

Offline Андрей *  
#2 Оставлено : 18 февраля 2022 г. 10:46:49(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,182
Мужчина
Российская Федерация

Сказал «Спасибо»: 620 раз
Поблагодарили: 2396 раз в 1885 постах
Здравствуйте.

1) Запустить в консоли под пользователем web-сервера
2) Проверять контейнер\сертификат\права для пользователя, под которым работает web-сервер. Или это ничего не настраивалось?
Техническую поддержку оказываем тут
Наша база знаний
Offline avtotest  
#3 Оставлено : 18 февраля 2022 г. 11:17:44(UTC)
avtotest

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.02.2022(UTC)
Сообщений: 5

1) Запустили через консоль. Методы Sign и SignCades работают корректно и выдают необходимую информацию. А SignHash по прежнему с ошибкой -> The parameter is incorrect. (0x80070057).

Если не через консоль запускать, то
Сades падает с ошибкой:
www-root: <capi20>CryptMsgGetParam!() Exception :'Error 0xea.' at file:'../../../CSPbuild/CSP/capilite/CMSMessage.h' line:250

2) Дело в том что методы Sign и SignCades через консоль отрабатывают корректно, а SignHash с ошибкой -> The parameter is incorrect. (0x80070057)
С чем это может быть связано?
Offline avtotest  
#4 Оставлено : 18 февраля 2022 г. 21:26:03(UTC)
avtotest

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.02.2022(UTC)
Сообщений: 5

Классы CPSigner, CPHashedData, CPStore работают корректно.
Данные по сертификатам отображаются корректно.
И методы Sign и SignCades работают корректно, но только через консоль.
А вот SignHash даже при запуске скрипта через консоль выдает ошибку The parameter is incorrect. (0x80070057)

Можете сориентировать почему она появляется, если другие методы работают?
Чем метод SignHash отличается от простого Sign и SignCades?

Offline avtotest  
#5 Оставлено : 18 февраля 2022 г. 21:43:30(UTC)
avtotest

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.02.2022(UTC)
Сообщений: 5

Вопрос падения расширения phpcades при подписи строки решился.
Это было связано с тем, что CSP использовал свою библиотеку CURL во время подписи, а PHP в режиме веб-сервера подгружало свою собственную curl, в итоге происходила нестабильная работа php и процесс убивался из-за некорректного доступа к адресам памяти.

Остался вопрос по работе SignHash и возникающей при подписи ошибки - The parameter is incorrect. (0x80070057).

Вот полностью код:
Цитата:

$h = "2b665bc6ca499b1f26b1f49bcc7c10a710f59b39b48c910fa2e21c881ef9d6d9";
$tsp_addres = "http://pki.skbkontur.ru/tsp2012/tsp.srf";

$signer = new CPSigner();
$signer->set_TSAAddress($tsp_addres);
$signer->set_Certificate($cert);

$hash = new CPHashedData();
$hash->set_Algorithm(HASH_ALGORITHM_GOSTR_3411);
$hash->SetHashValue($h);

$sd = new CPSignedData();
$sd->set_Content('123'); // добавлен на всякий случай, но не работает , что с ним, что без него
$sm = $sd->SignHash( $hash, $signer, CADES_X_LONG_TYPE_1, ENCODE_BASE64 );



Куда копать, подскажите пожалуйста? (методы Sign и SignCades работают без ошибок)
Offline Андрей *  
#6 Оставлено : 18 февраля 2022 г. 21:51:15(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,182
Мужчина
Российская Федерация

Сказал «Спасибо»: 620 раз
Поблагодарили: 2396 раз в 1885 постах
Автор: avtotest Перейти к цитате
Вопрос падения расширения phpcades при подписи строки решился.
Это было связано с тем, что CSP использовал свою библиотеку CURL во время подписи, а PHP в режиме веб-сервера подгружало свою собственную curl, в итоге происходила нестабильная работа php и процесс убивался из-за некорректного доступа к адресам памяти.

Остался вопрос по работе SignHash и возникающей при подписи ошибки - The parameter is incorrect. (0x80070057).

Вот полностью код:
Цитата:

$h = "2b665bc6ca499b1f26b1f49bcc7c10a710f59b39b48c910fa2e21c881ef9d6d9";
$tsp_addres = "http://pki.skbkontur.ru/tsp2012/tsp.srf";

$signer = new CPSigner();
$signer->set_TSAAddress($tsp_addres);
$signer->set_Certificate($cert);

$hash = new CPHashedData();
$hash->set_Algorithm(HASH_ALGORITHM_GOSTR_3411);
$hash->SetHashValue($h);

$sd = new CPSignedData();
$sd->set_Content('123'); // добавлен на всякий случай, но не работает , что с ним, что без него
$sm = $sd->SignHash( $hash, $signer, CADES_X_LONG_TYPE_1, ENCODE_BASE64 );



Куда копать, подскажите пожалуйста? (методы Sign и SignCades работают без ошибок)



Почему указан устаревший ГОСТ 1994?

Должен быть CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#7 Оставлено : 18 февраля 2022 г. 21:53:55(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,182
Мужчина
Российская Федерация

Сказал «Спасибо»: 620 раз
Поблагодарили: 2396 раз в 1885 постах

Перечисление CADESCOM_HASH_ALGORITHM

Техническую поддержку оказываем тут
Наша база знаний
Offline avtotest  
#8 Оставлено : 19 февраля 2022 г. 11:56:56(UTC)
avtotest

Статус: Новичок

Группы: Участники
Зарегистрирован: 17.02.2022(UTC)
Сообщений: 5

Спасибо. Вопрос решился, изменением типа алгоритма.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.