Sailfish Secrets
API DocumentationPluginInfoRequest Class
(Sailfish::Secrets::PluginInfoRequest)Allows a client request information about available storage, encryption and authentication plugins More...
Header: | #include <Secrets/plugininforequest.h> |
Inherits: | Sailfish::Secrets::Request |
Properties
- authenticationPlugins : const QVector<Sailfish::Secrets::PluginInfo>
- encryptedStoragePlugins : const QVector<Sailfish::Secrets::PluginInfo>
- encryptionPlugins : const QVector<Sailfish::Secrets::PluginInfo>
- storagePlugins : const QVector<Sailfish::Secrets::PluginInfo>
- 3 properties inherited from Sailfish::Secrets::Request
Public Functions
PluginInfoRequest(QObject *parent = Q_NULLPTR) | |
~PluginInfoRequest() | |
QVector<Sailfish::Secrets::PluginInfo> | authenticationPlugins() const |
QVector<Sailfish::Secrets::PluginInfo> | encryptedStoragePlugins() const |
QVector<Sailfish::Secrets::PluginInfo> | encryptionPlugins() const |
QVector<Sailfish::Secrets::PluginInfo> | storagePlugins() const |
Reimplemented Public Functions
virtual Sailfish::Secrets::SecretManager * | manager() const |
virtual Sailfish::Secrets::Result | result() const |
virtual void | setManager(Sailfish::Secrets::SecretManager *manager) |
virtual void | startRequest() |
virtual Sailfish::Secrets::Request::Status | status() const |
virtual void | waitForFinished() |
- 6 public functions inherited from Sailfish::Secrets::Request
Signals
void | authenticationPluginsChanged() |
void | encryptedStoragePluginsChanged() |
void | encryptionPluginsChanged() |
void | storagePluginsChanged() |
- 3 signals inherited from Sailfish::Secrets::Request
Detailed Description
Allows a client request information about available storage, encryption and authentication plugins
An example of retrieving information about available plugins follows:
Sailfish::Secrets::SecretManager sm; Sailfish::Secrets::PluginInfoRequest pir; pir.setManager(&sm); pir.startRequest(); // status() will change to Finished when complete // real clients should not use waitForFinished(). pir.waitForFinished(); for (const auto &plugin : pir.encryptedStoragePlugins()) { qDebug() << "Have encrypted storage plugin:" << plugin.name() << "with version:" << plugin.version(); }
Property Documentation
authenticationPlugins : const QVector<Sailfish::Secrets::PluginInfo>
Access functions:
QVector<Sailfish::Secrets::PluginInfo> | authenticationPlugins() const |
Notifier signal:
void | authenticationPluginsChanged() |
encryptedStoragePlugins : const QVector<Sailfish::Secrets::PluginInfo>
Access functions:
QVector<Sailfish::Secrets::PluginInfo> | encryptedStoragePlugins() const |
Notifier signal:
void | encryptedStoragePluginsChanged() |
encryptionPlugins : const QVector<Sailfish::Secrets::PluginInfo>
Access functions:
QVector<Sailfish::Secrets::PluginInfo> | encryptionPlugins() const |
Notifier signal:
void | encryptionPluginsChanged() |
storagePlugins : const QVector<Sailfish::Secrets::PluginInfo>
Access functions:
QVector<Sailfish::Secrets::PluginInfo> | storagePlugins() const |
Notifier signal:
void | storagePluginsChanged() |
Member Function Documentation
PluginInfoRequest::PluginInfoRequest(QObject *parent = Q_NULLPTR)
Constructs a new PluginInfoRequest object with the given parent.
PluginInfoRequest::~PluginInfoRequest()
Destroys the PluginInfoRequest
QVector<Sailfish::Secrets::PluginInfo> PluginInfoRequest::authenticationPlugins() const
Returns information about available authentication plugins.
Authentication plugins provide UI flows which request the user to provide an authentication key (e.g. lock code, password, fingerprint, iris scan or voice recognition template) which can be used to generate an encryption or decryption key.
If your application intends to store only application-specific secrets, then when creating the collection or secret you can specify an authentication plugin which supports the ApplicationSpecificAuthentication
authentication type, and register a InteractionView with the manager which will then be used to provide the UI interaction with the user, in-process. (Note that if you do not wish any UI interaction, the InteractionView implementation can return a precalculated key directly.)
Alternatively, other plugins provide various system-mediated UI flows which ensure that the integrity of the user's authentication data is maintained.
Note: Getter function for property authenticationPlugins.
QVector<Sailfish::Secrets::PluginInfo> PluginInfoRequest::encryptedStoragePlugins() const
Returns information about available encrypted storage plugins.
Encrypted storage plugins provide all-in-one encryption and storage for secrets. They generally use block-mode encryption algorithms such as AES256 to encrypt or decrypt entire pages of data when writing to or reading from a database, which makes them ideally suited to implement device-lock protected secret collection stores.
Note: Getter function for property encryptedStoragePlugins.
QVector<Sailfish::Secrets::PluginInfo> PluginInfoRequest::encryptionPlugins() const
Returns information about available encryption plugins.
Encryption plugins provide crypto operations for secrets. Different plugisn may be better for different use cases (e.g., some may be backed by a secure hardware peripheral, or a Trusted Execution Environment application, whereas others may simply run "normal" application code to perform cryptographic operations).
Note: Getter function for property encryptionPlugins.
[virtual]
Sailfish::Secrets::SecretManager *PluginInfoRequest::manager() const
See also setManager().
[virtual]
Sailfish::Secrets::Result PluginInfoRequest::result() const
[virtual]
void PluginInfoRequest::setManager(Sailfish::Secrets::SecretManager *manager)
See also manager().
[virtual]
void PluginInfoRequest::startRequest()
[virtual]
Sailfish::Secrets::Request::Status PluginInfoRequest::status() const
QVector<Sailfish::Secrets::PluginInfo> PluginInfoRequest::storagePlugins() const
Returns information about available storage plugins.
Storage plugins provide storage for secrets. Different plugins may be better for different use cases (e.g., some may be backed by a secure hardware peripheral, or a Trusted Execution Environment application, whereas others may simply run "normal" application code to store data to an SQL database on the device's filesystem).
These storage plugins don't perform any encryption; the Secrets service will use a specific encryption plugin to perform encryption and decryption operations.
Note: Getter function for property storagePlugins.