aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppTrustStorage.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-06-18 12:41:31 +0200
committerLinus Jahn <lnj@kaidan.im>2022-06-18 13:08:07 +0200
commit32ccc6358ba6433e6b870b238fba20ccf1862fe2 (patch)
tree81c4f8d5a1af484b7aad52ad2dcef4da556360ad /src/client/QXmppTrustStorage.h
parentcb1c0ac7ba16590304c8fe7bd6d87b69dffe5c67 (diff)
downloadqxmpp-32ccc6358ba6433e6b870b238fba20ccf1862fe2.tar.gz
Move SecurityPolicy, TrustLevel intro extra headers
This avoids the need to include the whole TrustStorage in files like SendStanzaParams.h.
Diffstat (limited to 'src/client/QXmppTrustStorage.h')
-rw-r--r--src/client/QXmppTrustStorage.h46
1 files changed, 11 insertions, 35 deletions
diff --git a/src/client/QXmppTrustStorage.h b/src/client/QXmppTrustStorage.h
index b93eae7b..0edc92a4 100644
--- a/src/client/QXmppTrustStorage.h
+++ b/src/client/QXmppTrustStorage.h
@@ -6,61 +6,37 @@
#define QXMPPTRUSTSTORAGE_H
#include "QXmppGlobal.h"
+#include "QXmppTrustLevel.h"
+#include "QXmppTrustSecurityPolicy.h"
#include <QFuture>
class QXMPP_EXPORT QXmppTrustStorage
{
public:
- ///
- /// 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. \see \xep{0450, Automatic Trust Management (ATM)}
- };
-
- ///
- /// Trust level of public long-term keys used by end-to-end encryption
- /// protocols
- ///
- enum TrustLevel {
- Undecided = 1, ///< The key's trust is not decided.
- AutomaticallyDistrusted = 2, ///< The key is automatically distrusted (e.g., by the security policy TOAKAFA). \see SecurityPolicy
- ManuallyDistrusted = 4, ///< The key is manually distrusted (e.g., by clicking a button or \xep{0450, Automatic Trust Management (ATM)}).
- AutomaticallyTrusted = 8, ///< The key is automatically trusted (e.g., by the client for all keys of a bare JID until one of it is authenticated).
- ManuallyTrusted = 16, ///< The key is manually trusted (e.g., by clicking a button).
- Authenticated = 32, ///< The key is authenticated (e.g., by QR code scanning or \xep{0450, Automatic Trust Management (ATM)}).
- };
- Q_DECLARE_FLAGS(TrustLevels, TrustLevel)
-
virtual ~QXmppTrustStorage() = default;
- virtual QFuture<void> setSecurityPolicy(const QString &encryption, SecurityPolicy securityPolicy) = 0;
+ virtual QFuture<void> setSecurityPolicy(const QString &encryption, QXmpp::TrustSecurityPolicy securityPolicy) = 0;
virtual QFuture<void> resetSecurityPolicy(const QString &encryption) = 0;
- virtual QFuture<SecurityPolicy> securityPolicy(const QString &encryption) = 0;
+ virtual QFuture<QXmpp::TrustSecurityPolicy> securityPolicy(const QString &encryption) = 0;
virtual QFuture<void> setOwnKey(const QString &encryption, const QByteArray &keyId) = 0;
virtual QFuture<void> resetOwnKey(const QString &encryption) = 0;
virtual QFuture<QByteArray> ownKey(const QString &encryption) = 0;
- virtual QFuture<void> addKeys(const QString &encryption, const QString &keyOwnerJid, const QList<QByteArray> &keyIds, TrustLevel trustLevel = TrustLevel::AutomaticallyDistrusted) = 0;
+ virtual QFuture<void> addKeys(const QString &encryption, const QString &keyOwnerJid, const QList<QByteArray> &keyIds, QXmpp::TrustLevel trustLevel = QXmpp::TrustLevel::AutomaticallyDistrusted) = 0;
virtual QFuture<void> removeKeys(const QString &encryption, const QList<QByteArray> &keyIds) = 0;
virtual QFuture<void> removeKeys(const QString &encryption, const QString &keyOwnerJid) = 0;
virtual QFuture<void> removeKeys(const QString &encryption) = 0;
- virtual QFuture<QHash<TrustLevel, QMultiHash<QString, QByteArray>>> keys(const QString &encryption, TrustLevels trustLevels = {}) = 0;
- virtual QFuture<QHash<QString, QHash<QByteArray, TrustLevel>>> keys(const QString &encryption, const QList<QString> &keyOwnerJids, TrustLevels trustLevels = {}) = 0;
- virtual QFuture<bool> hasKey(const QString &encryption, const QString &keyOwnerJid, TrustLevels trustLevels) = 0;
+ virtual QFuture<QHash<QXmpp::TrustLevel, QMultiHash<QString, QByteArray>>> keys(const QString &encryption, QXmpp::TrustLevels trustLevels = {}) = 0;
+ virtual QFuture<QHash<QString, QHash<QByteArray, QXmpp::TrustLevel>>> keys(const QString &encryption, const QList<QString> &keyOwnerJids, QXmpp::TrustLevels trustLevels = {}) = 0;
+ virtual QFuture<bool> hasKey(const QString &encryption, const QString &keyOwnerJid, QXmpp::TrustLevels trustLevels) = 0;
- virtual QFuture<QHash<QString, QMultiHash<QString, QByteArray>>> setTrustLevel(const QString &encryption, const QMultiHash<QString, QByteArray> &keyIds, TrustLevel trustLevel) = 0;
- virtual QFuture<QHash<QString, QMultiHash<QString, QByteArray>>> setTrustLevel(const QString &encryption, const QList<QString> &keyOwnerJids, TrustLevel oldTrustLevel, TrustLevel newTrustLevel) = 0;
- virtual QFuture<TrustLevel> trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId) = 0;
+ virtual QFuture<QHash<QString, QMultiHash<QString, QByteArray>>> setTrustLevel(const QString &encryption, const QMultiHash<QString, QByteArray> &keyIds, QXmpp::TrustLevel trustLevel) = 0;
+ virtual QFuture<QHash<QString, QMultiHash<QString, QByteArray>>> setTrustLevel(const QString &encryption, const QList<QString> &keyOwnerJids, QXmpp::TrustLevel oldTrustLevel, QXmpp::TrustLevel newTrustLevel) = 0;
+ virtual QFuture<QXmpp::TrustLevel> trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId) = 0;
virtual QFuture<void> resetAll(const QString &encryption) = 0;
};
-Q_DECLARE_METATYPE(QXmppTrustStorage::SecurityPolicy)
-Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppTrustStorage::TrustLevels)
-
#endif // QXMPPTRUSTSTORAGE_H