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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Kirill-Ekb  
#1 Оставлено : 13 марта 2017 г. 4:10:40(UTC)
Kirill-Ekb

Статус: Участник

Группы: Участники
Зарегистрирован: 23.01.2017(UTC)
Сообщений: 10
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 6 раз
Добрый день.

Хочу проверить подпись по хэшу файла с помощью PHP (libphpcades.so). ОС: CentOS 7 64bit. ПО: КриптоПро CSP 4.0 R2 и PHP 5.6.30.

# $hash - хэш файла
# $sgn - ЭП

try {
$hd = new CPHashedData();
$hd->set_Algorithm(100); # CADESCOM_HASH_ALGORITHM_CP_GOST_3411
$hd->set_DataEncoding(1); # CADESCOM_BASE64_TO_BINARY
$hd->SetHashValue($hash);

$sd = new CPSignedData();
$sd->VerifyHash($hd, $sgn, 1); # CADESCOM_CADES_BES

echo 'ok', PHP_EOL;
} catch (Exception $e) {
echo $e->getMessage(), PHP_EOL;
}

Во время выполнения кода возникает исключение из-за команды:
$sd->VerifyHash($hd, $sgn, 1);
с ошибкой "Internal error. (0x800B010A)". Прошу подсказать в чём не прав. Делаю по аналогии примера

Отредактировано пользователем 13 марта 2017 г. 14:44:09(UTC)  | Причина: Не указана

Offline Kirill-Ekb  
#2 Оставлено : 14 марта 2017 г. 8:01:11(UTC)
Kirill-Ekb

Статус: Участник

Группы: Участники
Зарегистрирован: 23.01.2017(UTC)
Сообщений: 10
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 6 раз
Решил проблему.

PHP код корректен.
Данный код ошибки говорит о об отсутствии сертификата Главного удостоверяющего центра
Offline Kirill-Ekb  
#3 Оставлено : 15 марта 2017 г. 4:53:58(UTC)
Kirill-Ekb

Статус: Участник

Группы: Участники
Зарегистрирован: 23.01.2017(UTC)
Сообщений: 10
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 6 раз
В продолжение задачи прошу подсказать как получить "SubjectName" списка ЭП подписанного документа с помощью PHP (libphpcades.so).

Я понимаю что нужно запросить аналог "oSignedData.Signers.Item(1).Certificate.SubjectName".
Но после вызова:
$sd->VerifyHash($hd, $sgn, 1);
который возвращает null не понятно как перейти к списку ЭП документа.

При попытке выполнить запрос (после VerifyHash):
$sd->get_Signers();
результата не даёт - вылетает с ошибкой:
Internal error. (0x800B0100)

Пожалуйста, подскажите что делаю не так?
Offline florentii  
#4 Оставлено : 29 марта 2017 г. 15:04:11(UTC)
florentii

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.04.2015(UTC)
Сообщений: 31
Молдова
Откуда: Тирасполь

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
Для решения вашего вопроса прочтите тему https://www.cryptopro.ru...ts&m=78553#post78553
thanks 1 пользователь поблагодарил florentii за этот пост.
Kirill-Ekb оставлено 29.03.2017(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.