diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/QXmppTrustStorage.cpp | 24 | ||||
| -rw-r--r-- | src/client/QXmppTrustStorage.h | 15 |
2 files changed, 38 insertions, 1 deletions
diff --git a/src/client/QXmppTrustStorage.cpp b/src/client/QXmppTrustStorage.cpp index 67f1ace9..16b858c2 100644 --- a/src/client/QXmppTrustStorage.cpp +++ b/src/client/QXmppTrustStorage.cpp @@ -33,6 +33,30 @@ /// /// +/// \fn QXmppTrustStorage::setSecurityPolicies(const QString &encryption = {}, SecurityPolicy securityPolicy = SecurityPolicy::NoSecurityPolicy) +/// +/// Sets the security policy for an encryption protocol or resets the set +/// security policies. +/// +/// If securityPolicy is not passed, the set security policy for encryption is +/// reset. +/// If also encryption is not passed, all set security policies are reset. +/// +/// \param encryption encryption protocol namespace +/// \param securityPolicy security policy being applied +/// + +/// +/// \fn QXmppTrustStorage::securityPolicy(const QString &encryption) +/// +/// Returns the security policy for an encryption protocol. +/// +/// \param encryption encryption protocol namespace +/// +/// \return the set security policy +/// + +/// /// \fn QXmppTrustStorage::addOwnKey(const QString &encryption, const QString &keyId) /// /// Adds an own key (i.e., the key used by this client instance). diff --git a/src/client/QXmppTrustStorage.h b/src/client/QXmppTrustStorage.h index 1252c06b..f1b426b5 100644 --- a/src/client/QXmppTrustStorage.h +++ b/src/client/QXmppTrustStorage.h @@ -34,7 +34,16 @@ class QXMPP_EXPORT QXmppTrustStorage { public: /// - /// trust level of public long-term keys used by end-to-end encryption + /// Security policy to decide which public long-term keys are used for + /// encryption because they are trusted + /// + enum SecurityPolicy { + NoSecurityPolicy, ///< New keys must be trusted manually. + Toakafa, ///< New keys are trusted automatically until the first authentication but automatically distrusted afterwards. + }; + + /// + /// Trust level of public long-term keys used by end-to-end encryption /// protocols /// enum TrustLevel { @@ -46,6 +55,9 @@ public: }; Q_DECLARE_FLAGS(TrustLevels, TrustLevel) + virtual QFuture<void> setSecurityPolicies(const QString &encryption = {}, SecurityPolicy securityPolicy = SecurityPolicy::NoSecurityPolicy) = 0; + virtual QFuture<SecurityPolicy> securityPolicy(const QString &encryption) = 0; + virtual QFuture<void> addOwnKey(const QString &encryption, const QString &keyId) = 0; virtual QFuture<void> removeOwnKey(const QString &encryption) = 0; virtual QFuture<QString> ownKey(const QString &encryption) const = 0; @@ -64,6 +76,7 @@ public: virtual QFuture<QHash<bool, QMultiHash<QString, QString>>> keysForPostponedTrustDecisions(const QString &encryption, const QList<QString> &senderKeyIds = {}) = 0; }; +Q_DECLARE_METATYPE(QXmppTrustStorage::SecurityPolicy) Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppTrustStorage::TrustLevels) #endif // QXMPPTRUSTSTORAGE_H |
