Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 37 Сказал(а) «Спасибо»: 3 раз
|
Как использовать библиотеки КриптоПро в среде Qt Creator для системы Sailfish OS? КриптоПро есть как на i486, так и на armv7hl. Нашла семплы, устанавливающиеся вместе с КриптоПро, если правильно понимаю, с devel-пакетом. Т.е., функции криптопро возможно спокойно использовать, подключая соответствующие хедеры в c++ коде. Работаю в Qt Creator, подключаюсь к устройству (armv7hl). Заранее поставила КриптоПро на устройство разумеется. Подключаю в .pro файл: Цитата: QMAKE_RPATHDIR += \ /usr/share/cprocsp/lib/arm \ #usr/share
LIBS += \ -L/usr/share/cprocsp/lib/arm -lssp
INCLUDEPATH += \ /usr/share/cprocsp/include \ /usr/share/cprocsp/include/cpcsp \ /usr/share/cprocsp/include/reader
Билдится, но если попытаться подключить какие-нибудь хедеры из соответствующей папки с устройства в cpp, то среда скажет, что такого хедера нет. До этого, с горем пополам как-то удавалось что-то запустить, хотя работали по прежнему не все функции, а после обновления, которые теперь ставится почему-то в /usr/share/, не работает не старая версия криптопро (/opt/), ни новая (/usr/share/). Чего не хватает? Нужно ли что-то ещё подключить? В devel пакете содержится инструкция по работе с функциями? Если да, то где искать?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,271
Сказал(а) «Спасибо»: 22 раз Поблагодарили: 446 раз в 325 постах
|
Здравствуйте. А вы разрабатываете именно под Sailfish, а не под Аврору? Из-за ограничений в последней (в валидаторе пакетов) между ними большая разница (и поэтому у нас два разных дистрибутива): наши библиотеки на Авроре лежат не по стандарту FHS, в отличие от всех остальных *nix, включая Sailfish разделения на пакты нет пакета для разработки нет наших консольных приложений нет готовых средств управления ключами и сертификатами нет в общем под Аврору есть только API, а на Sailfish - все Linux-овые средства https://support.cryptopr...7/0/sbork-primerov-n-nix |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 37 Сказал(а) «Спасибо»: 3 раз
|
Здравствуйте. Спасибо за ответ. Уже не первый день пытаюсь разобраться, как подключить библиотеки КриптоПро. Работаю конкретно с устройством Sailfish на данный момент, но через Aurora SDK. Хочу сделать уточнение, исходя из Вашего ответа. Получается, в случае работы конкретно с системой Aurora использовать библиотеки КриптоПро на данный момент не предоставится возможным, и, такой функционал не будет реализован в ближайшем будущем? Что на данный момент можно использовать для работы с Aurora из КриптоПро? Только команды для командной строки? А как поступать для работы с Sailfish? Возможно ли использовать библиотеки в моём коде? Если да, то как?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,271
Сказал(а) «Спасибо»: 22 раз Поблагодарили: 446 раз в 325 постах
|
Наоборот: на Авроре можно использовать только библиотеки, а на Sailfish - и библиотеки, и приложения. Настройки в pro-файле на глаз верные (если rpath указывается именно так: у нас Qt Creator никто не использует), плюс при линковке надо указывать библиотеки вместе с их зависимостями (-lssp недостаточно, надо -lssp -lcapi10 -lcapi20 -lrdrsup). См. также https://www.cryptopro.ru...aspx?g=posts&t=16466 Тут рецепт, как добавлять наши библиотеки в build-engine (для Авроры, вероятно, стоит ставить как cprocsp, так и запрещённый для сертифицированных устройств cprocsp-binaries - в нём хэдеры). |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 37 Сказал(а) «Спасибо»: 3 раз
|
Спасибо за ответ. Ссылку смотрела ещё до вопроса здесь. Всё это подключать пробовала, оттуда же брала всю остальную информацию, но в коде функции так и не было видно. Попробовала указать дополнительно: -lcapi10 -lcapi20 -lrdrsup, но получила следующие ошибки:
\srv\mer\toolings\AuroraOS-3.2.1.65-base\opt\cross\bin\armv7hl-meego-linux-gnueabi-ld:-1: error: cannot find -lcapi10 \srv\mer\toolings\AuroraOS-3.2.1.65-base\opt\cross\bin\armv7hl-meego-linux-gnueabi-ld:-1: error: cannot find -lcapi20 \srv\mer\toolings\AuroraOS-3.2.1.65-base\opt\cross\bin\armv7hl-meego-linux-gnueabi-ld:-1: error: cannot find -lrdrsup
Удалось исправить все ошибки, немного изменив .pro:
QMAKE_RPATH += \ -L/usr/share/cprocsp/lib \ -L/srv/mer/targets/$$(MER_SSH_TARGET_NAME)/lib \ -L/srv/mer/targets/$$(MER_SSH_TARGET_NAME)/usr/lib
QMAKE_LIBDIR += \ -L/usr/share/cprocsp/lib -lssp -lcapi10 -lcapi20 -lrdrsup \
INCLUDEPATH += \ /usr/share/cprocsp/include \ /usr/share/cprocsp/include/cpcsp \ /usr/share/cprocsp/include/reader \
И тем не менее, в коде всё ещё не могу использовать. Беру хедеры из примера InstallCert.cpp:
#include <stdio.h> #ifdef _WIN32 #include <windows.h> #include <wincrypt.h> #include <wincryptex.h> #else #include <string.h> #include <stdlib.h> #include <stdio.h> #include <WinCryptEx.h> #endif // _WIN32 #include "UnixEnroll.h"
И получаю ошибки:
error: WinCryptEx.h: No such file or directory #include <WinCryptEx.h>
error: 'WinCryptEx.h' file not found
error: 'UnixEnroll.h' file not found
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 37 Сказал(а) «Спасибо»: 3 раз
|
Я дополнительно попробовала воспользоваться следующими командами, находясь в папке с rpm пакетами (очень не уверена, что делаю верно):
export TARGET=AuroraOS-3.2.1.65-base-armv7hl sb2 -t $TARGET -m sdk-install -R zypper in *.rpm
При этом не установились:
cprocsp-rdr-pcsc-5.0.11998-4.noarch -- Installation of cprocsp-rdr-pcsc-5.0.11998-4.noarch failed: Error: Subprocess failed. Error: RPM failed: Error: Unknown non-lsb linux libpcsclite.so.1 was not found! error: %prein(cprocsp-rdr-pcsc-5.0.11998-4.noarch) scriptlet failed, exit status 1 error: cprocsp-rdr-pcsc-5.0.11998-4.noarch: install failed
cprocsp-rdr-cpfkc-5.0.11998-4.noarch -- Installation of cprocsp-rdr-cpfkc-5.0.11998-4.noarch failed: Error: Subprocess failed. Error: RPM failed: Error: Unknown non-lsb linux libpcsclite.so.1 was not found! error: %prein(cprocsp-rdr-cpfkc-5.0.11998-4.noarch) scriptlet failed, exit status 1 error: cprocsp-rdr-cpfkc-5.0.11998-4.noarch: install failed
Теперь хедеры как бы видны, но среда их выделяет как несуществуемые и вадёт ошибки, при этом компилится. Например, если я пишу:
cryptocheck::cryptocheck() { HCRYPTPROV hCryptProv = 0; } то компилится.
А такая строка вызывает ошибки: cryptocheck::cryptocheck() { HCERTSTORE hStoreHandle = CertOpenSystemStore(0, "uMy"); }
Ошибки: cryptocheck.o:-1: error: in function `cryptocheck::cryptocheck()': cryptocheck.o cryptocheck.cpp:33: error: undefined reference to `CertOpenSystemStoreA' collect2:-1: error: collect2: error: ld returned 1 exit status
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,271
Сказал(а) «Спасибо»: 22 раз Поблагодарили: 446 раз в 325 постах
|
Начните с того, под какую ОС вы собираете. Либо под Аврору, либо под Sailfish. У вас каша: пути к библиотекам как в Авроре, а пакеты от дистрибутива для Sailfish. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 37 Сказал(а) «Спасибо»: 3 раз
|
Установка приложения с КриптоПро на устройство с Sailfish OS.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,271
Сказал(а) «Спасибо»: 22 раз Поблагодарили: 446 раз в 325 постах
|
Тогда у вас неверные пути к библиотекам в pro-файле. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 37 Сказал(а) «Спасибо»: 3 раз
|
Хорошо. А какие пути будут правильными?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close