Пример QCA Keystore API
Приложение для демонстрации работы с QCA Keystore API под ОС Аврора.
Для взаимодействия с Keystore необходимо указывать провайдер "qca-aurora-pkcs11" при создании каждого криптообъекта QCA.
Для взаимодействия с QCA Keystore необходимо возвращать "cktee" по запросу QCA::Event::KeyStorePkcs11Provider, если устройство поддерживает TEE, или возвращать "Aurora-SoftHSM", если устройство не поддерживает TEE (используется SoftHSM токен).
В Keystore в настоящий момент доступен только кейстор типа "USERAPP". Кейстор "USERAPP" предназначен для хранения данных, зависящих и от приложения, и от пользователя. Они будут доступны для вызывающего приложения под конкретным пользователем. Для выбора типа кейстор необходимо передать его название при событии QCA::Event::KeyStoreId.
Содержание
- Содержание
- Совместимость
- Особенности использования и сборки
- Информация о ветках
- Установка и запуск
- Скриншоты
- Структура проекта
- Правила использования и участие в разработке
Совместимость
Приложение корректно работает начиная с ОС Аврора 5.1.3 и выше.
Особенности использования и сборки
Данный пример-приложение собирается с помощью Аврора SDK: Документация
Информация о ветках
Установка и запуск
Проект собирается обычным образом с помощью Аврора SDK: Документация.
Снимки экранов
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.
- Файл ru.auroraos.Keystore.pro описывает структуру проекта для системы сборки qmake.
- Каталог icons содержит значки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог cover содержит реализации обложек приложения.
- Каталог images содержит дополнительные значки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Файл Keystore.qml предоставляет реализацию окна приложения.
- Каталог rpm содержит настройки сборки rpm-пакета. ru.auroraos.Keystore.spec используется инструментом rpmbuild.
- Каталог src содержит исходный код на C++.
- Файл main.cpp является точкой входа в приложение.
- Файлы testthread.h и testthread.cpp содержат класс TestThread, в котором выполняется тестовый код для Keystore. Основная функция TestThread::run() показывает возможные способы взаимодействия с Keystore.
- Файлы clientpassphrasehandler.h и clientpassphrasehandler.cpp содержат класс ClientPassphraseHandler, который обрабатывает события со стороны QCA, такие как запрос на получение пароля keystore, получение типа симметричного ключа и т.п.
- Файлы askerthread.h и askerthread.cpp содержат специальную обёртку для запуска ClientPassphraseHandler в отдельном потоке. Поток обработки событий и код взаимодействия с QCA рекомендуется запускать в разных потоках, чтобы обработка событий могла быстро проходить в ассиметричном режиме.
- Файлы appjournal.h и appjournal.cpp содержат класс для ведения журнала проверки Keystore, который может быть отображен пользователю.
- Файлы loggerhelper.h и loggerhelper.cpp содержат вспомогательный класс для журналирования информации о Keystore.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.Keystore.desktop определяет отображение и параметры запуска приложения.
Правила использования и участие в разработке
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Лицензионное соглашение с участником Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.