Сборка на традиционных *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
На Linux это даст примерно такие команды компиляции и линковки:
g++ -std=c++98 -D_GLIBCXX_USE_CXX11_ABI=0 -DUNIX -DHAVE_LIMITS_H -D_COMPACT -DHAVE_STDINT_H -I/opt/cprocsp/include -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/asn1c/rtsrc -I/opt/cprocsp/include/asn1data -DSIZEOF_VOID_P=8 -g -c -o CryptMsgSign.o CryptMsgSign.cpp
g++ -std=c++98 -D_GLIBCXX_USE_CXX11_ABI=0 CryptMsgSign.o -L/opt/cprocsp/lib/amd64 -lssp -lcapi10 -lcapi20 -lrdrsup -lpthread -g -o CryptMsgSign
А на macOS - примерно такие:
clang++ -std=c++98 -DUNIX -DHAVE_LIMITS_H -D_COMPACT -I/opt/cprocsp/include -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/asn1c/rtsrc -I/opt/cprocsp/include/asn1data -DSIZEOF_VOID_P=8 -g -c -o CryptMsgSign.o CryptMsgSign.cpp
clang++ -std=c++98 CryptMsgSign.o -L/opt/cprocsp/lib -lssp -lcapi10 -lcapi20 -lrdrsup -lpthread -framework CoreFoundation -g -o CryptMsgSign
Особенности на Авроре 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 / 5
Из-за смены требований валидатора и появления изоляции пакетов на Авроре (не на Sailfish):
Чтобы отчасти компенсировать эти проблемы, сделан пакет cprocsp-binaries, который невозможно установить на сертифицированную ОС (из-за валидатора). В этот пакет входят:
- пакет для разработчика
- приложения (certmgr/cryptcp/csptest...)
Руководства разработчика
Основной интерфейс для встраивания КриптоПро CSP - это CryptoAPI. Он разработан компанией Microsoft и портирован нами на все платформы, поэтому главными источниками при разработке будут:
- Описание реализации (pdf-документ из комплекта документации на СКЗИ)
- Правила пользования (pdf-документ из комплекта документации на СКЗИ), особенно "Приложение 2" - "Перечень вызовов, использование которых при разработке систем на основе СКЗИ возможно без дополнительных тематических исследований"
- Раздел про криптографию на MSDN - здесь наиболее объёмная документация на API
- Руководство программиста - дополняет MSDN в части поддержки отечественных алгоритмов, а также расширения API в нашем СКЗИ
|