Сборка примеров на *nix
Опубликовано Андрей Русев on 2021-01-11 10:13

Сборка на традиционных *nix

В состав дистрибутива для большинства *nix-платформ входит пакет разработчика:

ПлатформаПакет разработчика
AIX cprocsp-devel
Аврора включён в cprocsp-binaries
FreeBSD cpro-devel
Linux lsb-cprocsp-devel
macOS CPROcspd
Sailfish lsb-cprocsp-devel
Solaris CPROcspd

Пакет надо установить вместе с самим КриптоПро CSP.
Рецепт для сборки примеров в /opt/cprocsp/src/readme.unix
Для 64-битной системы он выглядит так:

cd /opt/cprocsp/src/samples/CSP
eval `/opt/cprocsp/src/samples/setenv.sh --64`; make -f Makefile.unix clean
eval `/opt/cprocsp/src/samples/setenv.sh --64`; make -f Makefile.unix

Особенности на Авроре 3

Из-за требований валидатора пакетов на Авроре (не на Sailfish):

  • можно использовать только КриптоПро CSP 5.0 R2 (сборку 5.0.12000 Kraken)
  • дистрибутив для Авроры монолитный (из одного пакета)
  • не содержит пакета для разработчика
  • не содержит приложений (certmgr/cryptcp/csptest...)
  • библиотеки лежат не в традиционных местах, а в /usr/share/cprocsp/lib/
  • подключать их можно только с помощью RPATH или явной подгрузкой (dlopen)

Чтобы отчасти компенсировать эти проблемы, сделан пакет cprocsp-binaries, который невозможно установить на сертифицированную ОС (из-за валидатора). В этот пакет входят:

  • пакет для разработчика
  • приложения (certmgr/cryptcp/csptest...)

Особенности на Авроре 4

Из-за смены требований валидатора и появления изоляции пакетов на Авроре (не на Sailfish):

  • можно использовать только КриптоПро CSP 5.0 R3 (сборку 5.0.12417 Osiris или более свежую)
  • дистрибутив для Авроры монолитный (из одного пакета)
  • не содержит пакета для разработчика
  • не содержит приложений (certmgr/cryptcp/csptest...)
  • библиотеки лежат не в традиционных местах, а в /usr/lib/3rdparty/cprocsp/lib/
  • подключать их можно только с помощью dlopen
  • механизм отображения диалогов провайдера (БиоДСЧ, ввод пароля) из сторонних приложений находится в проработке, до её завершения необходимо перенести эту задачу на прикладное ПО: задавать пароли с помощью CryptSetProvParam(PP_KEYEXCHANGE_PIN), вместо генерации ключей использовать импорт готовых контейнеров из pfx или отделяемые носители

Чтобы отчасти компенсировать эти проблемы, сделан пакет cprocsp-binaries, который невозможно установить на сертифицированную ОС (из-за валидатора). В этот пакет входят:

  • пакет для разработчика
  • приложения (certmgr/cryptcp/csptest...)

Руководства разработчика

Основной интерфейс для встраивания КриптоПро CSP - это CryptoAPI. Он разработан компанией Microsoft и портирован нами на все платформы, поэтому главными источниками при разработке будут:

  • Описание реализации (pdf-документ из комплекта документации на СКЗИ)
  • Правила пользования (pdf-документ из комплекта документации на СКЗИ), особенно "Приложение 2" - "Перечень вызовов, использование которых при разработке систем на основе СКЗИ возможно без дополнительных тематических исследований"
  • Раздел про криптографию на MSDN - здесь наиболее объёмная документация на API
  • Руководство программиста - дополняет MSDN в части поддержки отечественных алгоритмов, а также расширения API в нашем СКЗИ
(12 плюсик(ов))
Класс!
Не очень :(