Skip to content

Консольная утилита для работы с маркировкой Честный Знак (TRUE API, СУЗ API, API ГИС МТ) на PHP

Notifications You must be signed in to change notification settings

kilylabs/true-api-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TRUE API CLI TOOLS

Неофициальная консольная утилита, написанная на PHP, для работы с системой Честный Знак.

Краткий обзор

Утилита позволяет просматривать и манипулировать данными системы Честный Знак посредством набора официальных API:

Зависимости

  • PHP 7.4+
  • КриптоПРО CSP 5+
  • libphpcades (является частью КриптоПРО CSP SDK)
  • Действуйщий сертификат Усиленной Квалифицированной Электронной Подписи (УКЭП)

Установка

Установка через composer:

composer require kilylabs/true-api-cli

Установка КриптоПРО CSP 5+

Скачать можно отсюда (требуется авторизация). Вроде как в данном ПО есть бесплатный период использования, но у меня он толком не заработал. Поэтому пришлось купить официальную лицензию здесь (лучше брать пожизненную лицензию "Лицензия на обновление СКЗИ "КриптоПро CSP" до версии 5.0 на одном рабочем месте с доступом на портал технической поддержки" - она не на много дороже, чем годовая подписка).

Установка хорошо описана в статье: https://estp.ru/test_eds/csp_setup_linux/ (описание подходит для версии 5).

После установки, нужно установить сертификат: https://estp.ru/test_eds/cert_install_linux/

Чтобы не быть привязанным к флешке, скопируйте папку с сертификатом УКЭП в папку:

cp -r /media/flash/cert.000 /var/opt/cprocsp/keys/имя_пользователя/

А после, установите сертификат командой:

/opt/cprocsp/bin/amd64/csptestf -absorb -certs

Установка libphpcades

Процедура установки описана здесь... но для PHP7 это работать на будет ) Чтобы сделать это всё работоспособным для PHP7+, нужно установить патч. Полная процедура установки расширения примерно такая:

  1. Скачиваем спец. версию cprocsp-devel пакета
wget https://www.cryptopro.ru/sites/default/files/public/faq/csp/csp5devel.tgz
tar xvzf csp5devel.tgz
cd csp5devel
dpkg -i lsb-cprocsp-devel_5.0.11863-5_all.deb
  1. Качаем и устанавливаем КриптоПРО CADES
mkdir cades
wget https://www.cryptopro.ru/sites/default/files/products/cades/current_release_2_0/cades-linux-amd64.tar.gz -O cades/cades-linux-amd64.tar.gz
cd cades
tar xvzf cades-linux-amd64.tar.gz
dpkg -i cprocsp-pki-phpcades-64_2.0.14458-1_amd64.deb cprocsp-pki-cades-64_2.0.14458-1_amd64.deb
  1. Применяем специальный патч для поддержки PHP7+
cp ../true-api-cli/contrib/php7_support.patch /opt/cprocsp/src/phpcades/
cd /opt/cprocsp/src/phpcades/
patch <php7_support.patch 
  1. В файле /opt/cprocsp/src/phpcades/Makefile.unix в переменную PHPDIR прописываем путь к хедерам нужной версии php Для PHP7.4 PHPDIR=/usr/include/php/20190902

Там же, добавьте в конец строки, заканчивающийся на -fPIC -DPIC строку -fpermissive. В итоге должно получиться что-то вроде:

...
-DSIZEOF_VOID_P=$(SIZEOF_VOID_P) -fPIC -DPIC -fpermissive
...
  1. Компилируем
eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix

Если всё прошло хорошо, в каталоге будет файл libphpcades.so 6) Подключаем библиотеку В выводе php -i | grep extension_dir получаем путь к папке с расширениями и создаем там симплинк на собранную libphpcades.so

ln -s /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib/php/20190902/

В файле php.ini добавляем в самый конец: extension=libphpcades.so

Проверить корректность установки PHP-расширения можно с помощью команды:

# php -m|grep CPCSP
php_CPCSP
#

Примеры использования

TODO

About

Консольная утилита для работы с маркировкой Честный Знак (TRUE API, СУЗ API, API ГИС МТ) на PHP

Topics

Resources

Stars

Watchers

Forks

Languages