[TOC]
This repo implements a C++ class and QML Module for storing encrypted data as a vault. The vault is stored on the local storage of the user. I have tested the library on Linux, Android, and the Browser.
The repo depends on Qt and openssl libraries. For the case of Android and Browser, openssl binaries will be downloaded from the releases of my action.
The project uses CMake presets as a way to share CMake configurations. Refer to cmake, ctest and cpack documentation for more information on the use of presets.
include(FetchContent)
FetchContent_Declare(
EstervVault
GIT_REPOSITORY https://github.com/EddyTheCo/Esterv.Crypto.Vault.git
GIT_TAG vMAJOR.MINOR.PATCH
FIND_PACKAGE_ARGS MAJOR.MINOR CONFIG
)
FetchContent_MakeAvailable(EstervVault)
target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> Esterv::Vault)
If you want to use the QML module also add
target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> $<$<STREQUAL:$<TARGET_PROPERTY:Esterv::Vault,TYPE>,STATIC_LIBRARY>:Esterv::Vaultplugin>)
You can read the API reference, or generate it yourself like
cmake --workflow --preset default-documentation
One needs to make available to the QML engine the different modules by setting the QML import path.
-
In your main function
engine.addImportPath("qrc:/esterVtech.com/imports");
to use the resource file. -
Set the environment variable like
export QML_IMPORT_PATH=installDir/CMAKE_INSTALL_LIBDIR
whereCMAKE_INSTALL_LIBDIR
is whereEsterv
folder was created.
The examples folder shows the use of the different custom types provided by the QML module.
One can also play with the types here
We appreciate any contribution!
You can open an issue or request a feature.
You can open a PR to the develop
branch and the CI/CD will take care of the rest.
Make sure to acknowledge your work, and ideas when contributing.