Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Veronica99  
#1 Оставлено : 12 февраля 2021 г. 17:01:45(UTC)
Veronica99

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.06.2020(UTC)
Сообщений: 35
Российская Федерация

Сказал(а) «Спасибо»: 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 пакете содержится инструкция по работе с функциями? Если да, то где искать?
Online Андрей Русев  
#2 Оставлено : 12 февраля 2021 г. 20:40:27(UTC)
Андрей Русев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 750

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 169 раз в 133 постах
Здравствуйте.
А вы разрабатываете именно под Sailfish, а не под Аврору? Из-за ограничений в последней (в валидаторе пакетов) между ними большая разница (и поэтому у нас два разных дистрибутива):
  • наши библиотеки на Авроре лежат не по стандарту FHS, в отличие от всех остальных *nix, включая Sailfish
  • разделения на пакты нет
  • пакета для разработки нет
  • наших консольных приложений нет
  • готовых средств управления ключами и сертификатами нет
  • в общем под Аврору есть только API, а на Sailfish - все Linux-овые средства
    https://support.cryptopr...7/0/sbork-primerov-n-nix
  • Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #3 Оставлено : 13 февраля 2021 г. 11:02:49(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Здравствуйте.
    Спасибо за ответ. Уже не первый день пытаюсь разобраться, как подключить библиотеки КриптоПро.
    Работаю конкретно с устройством Sailfish на данный момент, но через Aurora SDK.
    Хочу сделать уточнение, исходя из Вашего ответа. Получается, в случае работы конкретно с системой Aurora использовать библиотеки КриптоПро на данный момент не предоставится возможным, и, такой функционал не будет реализован в ближайшем будущем? Что на данный момент можно использовать для работы с Aurora из КриптоПро? Только команды для командной строки?
    А как поступать для работы с Sailfish? Возможно ли использовать библиотеки в моём коде? Если да, то как?
    Online Андрей Русев  
    #4 Оставлено : 15 февраля 2021 г. 9:33:04(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Наоборот: на Авроре можно использовать только библиотеки, а на Sailfish - и библиотеки, и приложения. Настройки в pro-файле на глаз верные (если rpath указывается именно так: у нас Qt Creator никто не использует), плюс при линковке надо указывать библиотеки вместе с их зависимостями (-lssp недостаточно, надо -lssp -lcapi10 -lcapi20 -lrdrsup). См. также https://www.cryptopro.ru...aspx?g=posts&t=16466 Тут рецепт, как добавлять наши библиотеки в build-engine (для Авроры, вероятно, стоит ставить как cprocsp, так и запрещённый для сертифицированных устройств cprocsp-binaries - в нём хэдеры).
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #5 Оставлено : 15 февраля 2021 г. 10:37:36(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 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
    Offline Veronica99  
    #6 Оставлено : 15 февраля 2021 г. 13:02:20(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 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
    Online Андрей Русев  
    #7 Оставлено : 15 февраля 2021 г. 17:54:37(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Начните с того, под какую ОС вы собираете. Либо под Аврору, либо под Sailfish. У вас каша: пути к библиотекам как в Авроре, а пакеты от дистрибутива для Sailfish.
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #8 Оставлено : 16 февраля 2021 г. 9:53:37(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Установка приложения с КриптоПро на устройство с Sailfish OS.
    Online Андрей Русев  
    #9 Оставлено : 16 февраля 2021 г. 10:05:21(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Тогда у вас неверные пути к библиотекам в pro-файле.
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #10 Оставлено : 16 февраля 2021 г. 10:12:12(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Хорошо. А какие пути будут правильными?
    Online Андрей Русев  
    #11 Оставлено : 16 февраля 2021 г. 11:06:01(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Простите: я забыл, что на Sailfish мы тоже испортили пути к библиотекам из-за Авроры. У вас всё как бы правильно: /usr/share/cprocsp/lib
    А вы можете увидеть целиком итоговую команду ld (armv7hl-meego-linux-gnueabi-ld)?
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #12 Оставлено : 16 февраля 2021 г. 11:18:04(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Как это сделать?
    Offline Veronica99  
    #13 Оставлено : 17 февраля 2021 г. 17:26:20(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Проблема всё ещё не решилась. Помогите разобраться, пожалуйста.
    Кроме описанной проблемы, появилась ещё одна: не работает команда certmgr. Со старой версией КриптоПро такого не было, а сейчас вылетают следующие ошибки:
    [...]# ./certmgr -list
    /root found!
    /root/.config not found!
    Aborted
    На всякий случай, проверила, не связана ли эта ошибка с данными на устройстве. Мне подсказали, что нет. Но я сделала дополнительную проверку, и установила КриптоПро предыдущей версии. С ней всё хорошо, команда работает.
    Online Андрей Русев  
    #14 Оставлено : 18 февраля 2021 г. 9:12:41(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Вы же получали строки с ошибками
    Цитата:
    \srv\mer\toolings\AuroraOS-3.2.1.65-base\opt\cross\bin\armv7hl-meego-linux-gnueabi-ld:-1: error: cannot find -lcapi10

    неужели там нет самих команд?

    Для работы должна существовать папка $HOME/.config
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #15 Оставлено : 18 февраля 2021 г. 9:37:46(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Проблему с тем, что были не видны библиотеки lcapi10, lcapi20, lrdrsup удалось исправить, вероятно, благодаря sb2 -t $TARGET -m sdk-install -R zypper in *.rpm.

    QMAKE_RPATHDIR += \
    /usr/share/cprocsp/lib \
    /srv/mer/targets/$$(MER_SSH_TARGET_NAME)/lib \
    /srv/mer/targets/$$(MER_SSH_TARGET_NAME)/usr/lib

    LIBS += \
    -L/usr/share/cprocsp/lib -lssp -lcapi10 -lcapi20 -lrdrsup

    INCLUDEPATH += \
    /usr/share/cprocsp/include

    Теперь я могу запустить проект, но среда спрашивает у меня игнорировать или нет порядка 900 ошибок вида \usr\share\cprocsp\lib\libssp.so:-1: error: invalid string offset 2428 >= 573 for section `.strtab' с разными числовыми значениями. То же самое для библиотек libcapi10, libcapi20, librdrsup, libcpext.

    Проверила папку $HOME/.config. Она есть. Попробовала запустить команду оттуда, результат остался прежним.
    Online Андрей Русев  
    #16 Оставлено : 18 февраля 2021 г. 16:39:46(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    А можете прислать результат
    Код:
    ls -las /root/.config

    По "error: invalid string offse" есть мнение "it's definitely related to the 32Bit rpi armhf/armv7l build chain": https://bugzilla.samba.org/show_bug.cgi?id=13754
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #17 Оставлено : 18 февраля 2021 г. 16:57:34(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Если ввести команду без root:
    [...]$ ls -las /root/.config
    ls: cannot access /root/.config: Permission denied

    Если с root:
    [root]# ls -las /root/.config
    ls: cannot access /root/.config: No such file or directory

    За ссылку спасибо, буду изучать. Но, если вкратце, получается проблема не может быть связана с самим КриптоПро?
    Online Андрей Русев  
    #18 Оставлено : 18 февраля 2021 г. 18:11:07(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Папки /root/.config у вас-таки нет.

    Да, есть подозрения, что проблема с нами не связана.
    Официальная техподдержка. Официальная база знаний.
    Offline Veronica99  
    #19 Оставлено : 19 февраля 2021 г. 10:13:47(UTC)
    Veronica99

    Статус: Активный участник

    Группы: Участники
    Зарегистрирован: 17.06.2020(UTC)
    Сообщений: 35
    Российская Федерация

    Сказал(а) «Спасибо»: 3 раз
    Папки /root/.config нет. $HOME/.config есть.
    Online Андрей Русев  
    #20 Отправлено: : 20 февраля 2021 г. 9:51:11(UTC)
    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 750

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 169 раз в 133 постах
    Вероятно, у вас неконсистентное окружение: так бывает, когда повышаешь привилегии по "su", а не по "su -".
    Официальная техподдержка. Официальная база знаний.
    RSS Лента  Atom Лента
    Пользователи, просматривающие эту тему
    2 Страницы12>
    Быстрый переход  
    Вы не можете создавать новые темы в этом форуме.
    Вы не можете отвечать в этом форуме.
    Вы не можете удалять Ваши сообщения в этом форуме.
    Вы не можете редактировать Ваши сообщения в этом форуме.
    Вы не можете создавать опросы в этом форуме.
    Вы не можете голосовать в этом форуме.