QCA Keystore API example
Aurora OS example to demonstrate the QCA Keystore API.
"qca-aurora-pkcs11" provider must be specified every time QCA object is instantiated.
"cktee" must be submitted as a KeyStorePkcs11Provider in order to use Keystore on TEE device. "Aurora-SoftHSM" must be submitted as a KeyStorePkcs11Provider in order to use Keystore on devices that do not support TEE.
The Keystore API provides access to the "USERAPP" token.
- "USERAPP" - keystore limited to the caller process launched under the current user.
Keystore is selected by submitting its name in response to QCA::Event::KeyStoreId
event.
Table of Contents
- Table of Contents
- Compatibility
- Features of use and build
- Branch info
- Install and Run
- Screenshots
- Project Structure
- Terms of Use and Participation in Development
Compatibility
The project is compatible with all current versions of Aurora OS, older than version 5.1.3
Features of use and build
This example being built using the Aurora SDK: Documentation
Branch info
Install and Run
The project being built in the usual way using the Aurora SDK: Documentation.
Project Structure
The project has a standard structure of an application based on C++ and QML for Aurora OS.
- ru.auroraos.Keystore.pro file describes the project structure for the qmake build system.
- icons directory contains application icons for different screen resolutions.
-
qml directory contains the QML source code and the UI resources.
- cover directory contains the application cover implementations.
- icons directory contains the custom UI icons.
- pages directory contains the application pages.
- Keystore.qml file provides the application window implementation.
- rpm directory contains the rpm-package build settings. ru.auroraos.Keystore.spec file is used by rpmbuild tool.
-
src directory contains the C++ source code.
- main.cpp file is the application entry point.
-
testthread.h and testthread.cpp files contain the code that demonstrates the usage of QCA API. Method
TestThread::run()
shows different use cases of QCA API cryptographic functions. -
clientpassphrasehandler.h and clientpassphrasehandler.cpp files provide
ClientPassphraseHandler
class which handles outgoing QCA events such as password requests, key symmetrical key type submussion requests, etc. -
askerthread.h and askerthread.cpp files contain a wrapper for
ClientPassphraseHandler
running in a seperate thread for asynchronous event handling. - appjournal.h and appjournal.cpp files provide a journal for storing Keystore information that can be displayed to the user.
- loggerhelper.h and loggerhelper.cpp files provide a helper class for logging Keystore test process.
- translations directory contains the UI translation files.
- ru.auroraos.Keystore.desktop file defines the display and parameters for launching the application.
Screenshots
Terms of Use and Participation in Development
The source code of the project is provided under the license, which allows its use in third-party applications.
Contributor License Agreement The contributor agreement documents the rights granted by contributors of the Open Mobile Platform.
Information about the contributors is specified in the AUTHORS file.
Code of conduct is a current set of rules of the Open Mobile Platform which informs you how we expect the members of the community will interact while contributing and communicating.