kilylabs/true-api-cli

Консольная утилита для работы с API честный знак

0.1.7 2021-10-08 06:23 UTC

This package is auto-updated.

Last update: 2024-04-24 17:46:56 UTC


README

Неофициальная консольная утилита, написанная на 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