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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline a_bogatyrev  
#1 Оставлено : 20 января 2023 г. 13:42:57(UTC)
a_bogatyrev

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

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

Сказал(а) «Спасибо»: 1 раз
Делаю все по инструкции.
PHP 8.1.5
Astra Linux 1.6

https://docs.cryptopro.r...b7%d1%8b%d0%ba%d0%b0-php

На 7 шаге возникла ошибка:

При вызове данной команды:
Цитата:
/opt/cprocsp/src/phpcades# eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix


Все шло хорошо, до этого момента:

Цитата:
PHPCadesCPCertificate.cpp:139:36: error: macro "RETURN_STRINGL" passed 3 arguments, but takes just 2
RETURN_STRINGL(str, len - 2 , 0); //удаляем перевод строки иначе php будет мусор оставлять в переменных
^
In file included from stdafx.h:39:0,
from PHPCadesCPCertificate.cpp:1:
/opt/cprocsp/include/cpcsp/CSP_WinDef.h:484:152: note: #pragma message: Your application will require at least CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions.
# pragma message ("Your application will require at least CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions.")
^
PHPCadesCPCertificate.cpp: In function ‘void zim_CPCertificate_Export(zend_execute_data*, zval*)’:
PHPCadesCPCertificate.cpp:139:5: error: ‘RETURN_STRINGL’ was not declared in this scope
RETURN_STRINGL(str, len - 2 , 0); //удаляем перевод строки иначе php будет мусор оставлять в переменных
^~~~~~~~~~~~~~
Makefile.unix:30: ошибка выполнения рецепта для цели «PHPCadesCPCertificate.o»
make: *** [PHPCadesCPCertificate.o] Ошибка 1



Что делал не так?

Отредактировано пользователем 20 января 2023 г. 13:47:15(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#2 Оставлено : 22 января 2023 г. 12:47:48(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
Добрый день.
Патч не применили?
Код:
patch -p0 < filename.patch
Техническую поддержку оказываем тут
Наша база знаний
Offline a_bogatyrev  
#3 Оставлено : 23 января 2023 г. 16:58:47(UTC)
a_bogatyrev

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

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

Сказал(а) «Спасибо»: 1 раз
Патч применил, пришлось зайти в файл PHPCadesCPCertificate.cpp и поменять
Цитата:
RETURN_STRINGL(str, len - 2 , 0);
на
Цитата:
RETURN_STRINGL(str, len - 2);

После этого получилось, теперь получаю другую ошибку.
При запуске данного теста:
Цитата:

<?php
//Вспомогательные функции предварительной инициализации
function SetupStore($location, $name, $mode)
{
$store = new CPStore();
$store->Open($location, $name, $mode);
return $store;
}

function SetupCertificates($location, $name, $mode)
{
$store = SetupStore($location, $name, $mode);
$certs = $store->get_Certificates();
return $certs;

}

function SetupCertificate($location, $name, $mode,
$find_type, $query, $valid_only,
$number)
{
$certs = SetupCertificates($location, $name, $mode);
if(!is_null($find_type))
{
$certs = $certs->Find($find_type, $query, $valid_only);
return $certs->Item($number);
}
else
{
$cert = $certs->Item($number);
return $cert;
}
}

function test_CPSignedData_Sign_Verify()
{
try{
$content = "test content";
$address = "http://testca.cryptopro.ru/tsp/tsp.srf";
$cert = SetupCertificate(CURRENT_USER_STORE, "My", STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SHA1_HASH, "20bd61ffa129eea54645042387e9bb0ed24c4bc", 0,
1);

if(!$cert)
return "Certificate not found";
$signer = new CPSigner();
$signer->set_TSAAddress($address);
$signer->set_Certificate($cert);
$signer->set_KeyPin("12345678");

printf("SET SERT OK\n");

$sd = new CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode($content));

printf("SET CONTENT OK\n");

// Второй параметр - тип подписи(1 = CADES_BES): http://cpdn.cryptopro.ru...f7edbeeaf0be3d44c0b.html

//Третий параметр detached - отделенная(true) или совмещенная (false)
//$sm = $sd->SignCades($signer, 0, true, 0);
$sm = $sd->Sign($signer, 0, ENCODE_BASE64);

printf("Signature is:\n");
printf($sm);
printf("\n");

$sd->VerifyCades($sm, 1, false);
return 1;
}catch(Exception $e)
{
printf($e->getMessage());
}
}

if(test_CPSignedData_Sign_Verify() == 1)
{
printf("TEST OK\n");
}else
{
printf("TEST FAIL\n");
}

?>



Получаю следующее:
SET SERT OK
SET CONTENT OK
Ошибка сегментирования

Что может быть?

Отредактировано пользователем 23 января 2023 г. 17:07:45(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#4 Оставлено : 23 января 2023 г. 22:05:23(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
А покажите вывод
dpkg -l | grep cpro

Мы рекомендуем брать актуальную версию csp и кадес на текущий момент
Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#5 Оставлено : 24 января 2023 г. 2:24:52(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
в актуальной все нормально
Код:
    grep -a RETURN_STRINGL /opt/cprocsp/src/phpcades/PHPCadesCPCertificate.cpp | iconv -f cp1251
    RETURN_STRINGL(str, len - 2); //удаляем перевод строки иначе php будет мусор оставлять в переменных
Техническую поддержку оказываем тут
Наша база знаний
Offline a_bogatyrev  
#6 Оставлено : 24 января 2023 г. 10:07:53(UTC)
a_bogatyrev

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

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

Сказал(а) «Спасибо»: 1 раз
Да, спасибо попробую!
Offline Санчир Момолдаев  
#7 Оставлено : 24 января 2023 г. 15:04:25(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
Понял. Была ошибка в патче для 8. Исправим на сайте. А то что вы сделали - было правильно
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.