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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline egregius  
#1 Оставлено : 19 августа 2020 г. 1:59:25(UTC)
egregius

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

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

Пытаюсь собрать расширение для php на debian 9,
что уже только не делал и разные версии php пробовал и cades sdk и кучу манов перечитал.

В итоге что то начало получатся на php 7.3, SDK 2.0 и CSP 5.0 (сертифицированной).
Но во время компиляции получаю одну и туже ошибку
Код:

st CryptoPro CSP 4.0 R3. You can use LEGACY_FORMAT_MESSAGE_IMPL to support older versions."

PHPCadesCPSignedData.cpp: In function 'void zim_CPSignedData_SignHash(zend_execute_data*, zval*)':
PHPCadesCPSignedData.cpp:69:31: error: 'sig_ce' was not declared in this scope
                               sig_ce, &zHashedData, hash_dat_class_entry,
                               ^~~~~~
PHPCadesCPSignedData.cpp:69:53: error: 'hash_dat_class_entry' was not declared in this scope
                               sig_ce, &zHashedData, hash_dat_class_entry,
                                                     ^~~~~~~~~~~~~~~~~~~~
PHPCadesCPSignedData.cpp:76:5: error: 'sig_obj' was not declared in this scope
     sig_obj *pSigner =
     ^~~~~~~
PHPCadesCPSignedData.cpp:76:14: error: 'pSigner' was not declared in this scope
     sig_obj *pSigner =
              ^~~~~~~
PHPCadesCPSignedData.cpp:77:19: error: expected primary-expression before ')' token
         (sig_obj *)zend_object_store_get_object(zSigner TSRMLS_CC);
                   ^
PHPCadesCPSignedData.cpp:78:5: error: 'hash_dat_obj' was not declared in this scope
     hash_dat_obj *pHashedData =
     ^~~~~~~~~~~~
PHPCadesCPSignedData.cpp:78:19: error: 'pHashedData' was not declared in this scope
     hash_dat_obj *pHashedData =
                   ^~~~~~~~~~~
PHPCadesCPSignedData.cpp:79:24: error: expected primary-expression before ')' token
         (hash_dat_obj *)zend_object_store_get_object(zHashedData TSRMLS_CC);
                        ^
PHPCadesCPSignedData.cpp:81:5: error: 'sig_dat_obj' was not declared in this scope
     sig_dat_obj *obj =
     ^~~~~~~~~~~
PHPCadesCPSignedData.cpp:81:18: error: 'obj' was not declared in this scope
     sig_dat_obj *obj =
                  ^~~
PHPCadesCPSignedData.cpp:82:23: error: expected primary-expression before ')' token
         (sig_dat_obj *)zend_object_store_get_object(getThis() TSRMLS_CC);
                       ^
Makefile.unix:30: recipe for target 'PHPCadesCPSignedData.o' failed
make: *** [PHPCadesCPSignedData.o] Error 1
Offline Ситдиков Денис  
#2 Оставлено : 19 августа 2020 г. 11:54:40(UTC)
Ситдиков Денис

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

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

Поблагодарили: 13 раз в 12 постах
Добрый день!
Вы применяли патч для php7?
В этом посте пошаговая инструкция есть.
Offline egregius  
#3 Оставлено : 19 августа 2020 г. 22:56:38(UTC)
egregius

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

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

Да, пробовал и с патчем и без (ошибки в примере это с патчем)
Все делал по интрукции и из того поста и других статей и оф. документации... ничего не помогает вообще ничего. мне уже кажется что проблема в самом csp или sdk

Отредактировано пользователем 19 августа 2020 г. 22:58:42(UTC)  | Причина: Не указана

Offline alex25region  
#4 Оставлено : 25 августа 2020 г. 14:45:34(UTC)
alex25region

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

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

Добрый день! У меня такая же беда. Делаю все по инструкции.
Centos 7 x64, PHP 7.4.9, SDK 2.0 и CSP 4.0 (сертифицированной), g++ (GCC) 4.8.5.

Установленные пакеты:
lsb-cprocsp-base-4.0.9944-5.noarch
lsb-cprocsp-ca-certs-4.0.9944-5.noarch
lsb-cprocsp-rdr-64-4.0.9944-5.x86_64
lsb-cprocsp-capilite-64-4.0.9944-5.x86_64
lsb-cprocsp-devel-5.0.11438-4.noarch
cprocsp-curl-64-4.0.9944-5.x86_64
cprocsp-pki-phpcades-2.0.0-1.x86_64
lsb-cprocsp-kc1-64-4.0.9944-5.x86_64
cprocsp-pki-cades-2.0.0-1.x86_64

применял патч для php7.

При компиляции ошибка как у автора данной темы:
Цитата:
In file included from stdafx.h:39:0,
from PHPCadesCPSignedData.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.")
^
PHPCadesCPSignedData.cpp: In function ‘void zim_CPSignedData_SignHash(zend_execute_data*, zval*)’:
PHPCadesCPSignedData.cpp:69:31: error: ‘sig_ce’ was not declared in this scope
sig_ce, &zHashedData, hash_dat_class_entry,
^
PHPCadesCPSignedData.cpp:69:53: error: ‘hash_dat_class_entry’ was not declared in this scope
sig_ce, &zHashedData, hash_dat_class_entry,
^
PHPCadesCPSignedData.cpp:76:5: error: ‘sig_obj’ was not declared in this scope
sig_obj *pSigner =
^
PHPCadesCPSignedData.cpp:76:14: error: ‘pSigner’ was not declared in this scope
sig_obj *pSigner =
^
PHPCadesCPSignedData.cpp:77:19: error: expected primary-expression before ‘)’ token
(sig_obj *)zend_object_store_get_object(zSigner TSRMLS_CC);
^
PHPCadesCPSignedData.cpp:77:20: error: expected ‘;’ before ‘zend_object_store_get_object’
(sig_obj *)zend_object_store_get_object(zSigner TSRMLS_CC);
^
PHPCadesCPSignedData.cpp:78:5: error: ‘hash_dat_obj’ was not declared in this scope
hash_dat_obj *pHashedData =
^
PHPCadesCPSignedData.cpp:78:19: error: ‘pHashedData’ was not declared in this scope
hash_dat_obj *pHashedData =
^
PHPCadesCPSignedData.cpp:79:24: error: expected primary-expression before ‘)’ token
(hash_dat_obj *)zend_object_store_get_object(zHashedData TSRMLS_CC);
^
PHPCadesCPSignedData.cpp:79:25: error: expected ‘;’ before ‘zend_object_store_get_object’
(hash_dat_obj *)zend_object_store_get_object(zHashedData TSRMLS_CC);
^
PHPCadesCPSignedData.cpp:81:5: error: ‘sig_dat_obj’ was not declared in this scope
sig_dat_obj *obj =
^
PHPCadesCPSignedData.cpp:81:18: error: ‘obj’ was not declared in this scope
sig_dat_obj *obj =
^
PHPCadesCPSignedData.cpp:82:23: error: expected primary-expression before ‘)’ token
(sig_dat_obj *)zend_object_store_get_object(getThis() TSRMLS_CC);
^
PHPCadesCPSignedData.cpp:82:24: error: expected ‘;’ before ‘zend_object_store_get_object’
(sig_dat_obj *)zend_object_store_get_object(getThis() TSRMLS_CC);
^
make: *** [PHPCadesCPSignedData.o] Error 1

Отредактировано пользователем 25 августа 2020 г. 14:46:16(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#5 Оставлено : 25 августа 2020 г. 15:55:38(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 59 раз
Поблагодарили: 124 раз в 122 постах
Добрый день
Напишите на портал технической поддержки
Проблему топикстартера решили там
Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#6 Оставлено : 26 августа 2020 г. 16:07:06(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 59 раз
Поблагодарили: 124 раз в 122 постах
проблема решается в рамках тикета 32058
Техническую поддержку оказываем тут
Наша база знаний
Offline Fedor A  
#7 Оставлено : 20 октября 2020 г. 16:05:53(UTC)
Fedor A

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

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

Автор: Санчир Момолдаев Перейти к цитате
проблема решается в рамках тикета 32058


Добрый день.

Возможно ли получить данное решение?
Столкнулись с той же проблемой.
Offline Санчир Момолдаев  
#8 Оставлено : 6 ноября 2020 г. 8:41:52(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 59 раз
Поблагодарили: 124 раз в 122 постах
Добрый день!
опишите вашу текущую проблему/ошибку
укажите используемые версии php csp и cades
Техническую поддержку оказываем тут
Наша база знаний
Offline AndrejTAD  
#9 Оставлено : 27 января 2021 г. 11:31:08(UTC)
AndrejTAD

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

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

День добрый.

Проблема та же самая.

Debian x64
PHP 7.2.34
КриптоПро ЭЦП SDK (версия 2.00.13537 для Windows и 2.0.13642 для Unix-платформ)
КриптоПро CSP 5.0 для Linux (x64, rpm)
Контрольная сумма
ГОСТ: 76CF9CA7CAB813A3BB6B99CDD976C0FA1FC0098623BFC1DE85842DDDC9EF4F31
MD5: b87bbe581d2431c71b8ec79f4bf7303b

cades_linux_amd64.tar.gz
cprocsp-pki-cades-64_2.0.14071-1_amd64.deb
cprocsp-pki-phpcades-64_2.0.14071-1_amd64.deb
cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb
linux-amd64_deb.tgz
lsb-cprocsp-devel_5.0.11455-5_all.deb
php-7.2.34.tar.gz

php7_support.patch.zip

Подскажите, пожалуйста, как это можно решить, или дайте ссылку на решение.
Offline AndrejTAD  
#10 Оставлено : 27 января 2021 г. 13:34:15(UTC)
AndrejTAD

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

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

Автор: Санчир Момолдаев Перейти к цитате
Добрый день!
опишите вашу текущую проблему/ошибку
укажите используемые версии php csp и cades


Пока ответа нет, продолжаю разбираться.

Видимо, дело в некорректном патч файле по адресу - https://www.cryptopro.ru...s/php7_support.patch.zip

При его применении создается файл PHPCadesCPSignedData.cpp.rej , что легко не заметить сразу, со следующим содержимым

Код:

--- PHPCadesCPSignedData.cpp	(revision 161471)
+++ PHPCadesCPSignedData.cpp	(working copy)
@@ -66,20 +70,26 @@
     int lVal;
 
     if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "OOll", &zHashedData,
-                              hash_dat_class_entry, &zSigner, sig_ce,
+                              hashed_data_ce, &zSigner, signer_ce,
                               &lCadesType, &lEncodingType) == FAILURE)
         RETURN_WITH_EXCEPTION(E_INVALIDARG);
 
     CadesType = (CADESCOM_CADES_TYPE)lCadesType;
     EncodingType = (CAPICOM_ENCODING_TYPE)lEncodingType;
+    
+    zend_object *zobj = Z_OBJ_P(getThis());
+    signed_data_obj *obj =
+        (signed_data_obj *)((char *)zobj - XtOffsetOf(signed_data_obj, zobj));
 
-    sig_obj *pSigner =
-        (sig_obj *)zend_object_store_get_object(zSigner TSRMLS_CC);
-    hash_dat_obj *pHashedData =
-        (hash_dat_obj *)zend_object_store_get_object(zHashedData TSRMLS_CC);
+    zobj = Z_OBJ_P(zSigner);
+    signer_obj *pSigner =
+        (signer_obj *)((char *)zobj - XtOffsetOf(signer_obj, zobj));
 
-    sig_dat_obj *obj =
-        (sig_dat_obj *)zend_object_store_get_object(getThis() TSRMLS_CC);
+    zobj = Z_OBJ_P(zHashedData);
+    hashed_data_obj *pHashedData =
+        (hashed_data_obj *)((char *)zobj - XtOffsetOf(hashed_data_obj, zobj));
+
+
     HR_ERRORCHECK_RETURN(obj->m_pCppCadesImpl->SignHash(
         pSigner->m_pCppCadesImpl, pHashedData->m_pCppCadesImpl, CadesType,
         EncodingType, &bVal));


Видимо, пропатчить не удается следующий фрагмент -

Код:

     int lVal;
 
     if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "OOll", &zHashedData,
-                              hash_dat_class_entry, &zSigner, sig_ce,
+                              hashed_data_ce, &zSigner, signer_ce,
                               &lCadesType, &lEncodingType) == FAILURE)
         RETURN_WITH_EXCEPTION(E_INVALIDARG);



ибо в файле PHPCadesCPSignedData.cpp на этом месте

Код:

    int lVal;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Olll", &zSigner,
                              signer_ce, &lCadesType, &lDetached,
                              &lEncodingType) == FAILURE)
        RETURN_WITH_EXCEPTION(E_INVALIDARG);


Пока сам смотрю как с этим бороться. Но от помощи разработчиков не откажусь.
Offline Александр Лавник  
#11 Оставлено : 27 января 2021 г. 14:44:00(UTC)
Александр Лавник

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

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

Сказал «Спасибо»: 39 раз
Поблагодарили: 542 раз в 514 постах
Автор: AndrejTAD Перейти к цитате
День добрый.

Проблема та же самая.

Debian x64
PHP 7.2.34
КриптоПро ЭЦП SDK (версия 2.00.13537 для Windows и 2.0.13642 для Unix-платформ)
КриптоПро CSP 5.0 для Linux (x64, rpm)
Контрольная сумма
ГОСТ: 76CF9CA7CAB813A3BB6B99CDD976C0FA1FC0098623BFC1DE85842DDDC9EF4F31
MD5: b87bbe581d2431c71b8ec79f4bf7303b

cades_linux_amd64.tar.gz
cprocsp-pki-cades-64_2.0.14071-1_amd64.deb
cprocsp-pki-phpcades-64_2.0.14071-1_amd64.deb
cprocsp-pki-plugin-64_2.0.14071-1_amd64.deb
linux-amd64_deb.tgz
lsb-cprocsp-devel_5.0.11455-5_all.deb
php-7.2.34.tar.gz

php7_support.patch.zip

Подскажите, пожалуйста, как это можно решить, или дайте ссылку на решение.

Здравствуйте.

Попробуйте собрать по инструкции.

Пакет lsb-cprocsp-devel нужно взять из состава КриптоПро CSP 5.0 R2.
Техническую поддержку оказываем тут
Наша база знаний
Offline AndrejTAD  
#12 Оставлено : 27 января 2021 г. 16:30:32(UTC)
AndrejTAD

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

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

Помогло.

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