diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-05-31 12:22:48 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-08-13 15:55:03 +0200 |
| commit | f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23 (patch) | |
| tree | 12ca6aefdef9195ee8937406db86e73cf1a5f820 /src/client/QXmppOmemoMemoryStorage.cpp | |
| parent | 87df8a8dda385558d39639ce09e2717974264ab6 (diff) | |
| download | qxmpp-f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23.tar.gz | |
Split up OMEMO into extra module
Diffstat (limited to 'src/client/QXmppOmemoMemoryStorage.cpp')
| -rw-r--r-- | src/client/QXmppOmemoMemoryStorage.cpp | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/client/QXmppOmemoMemoryStorage.cpp b/src/client/QXmppOmemoMemoryStorage.cpp deleted file mode 100644 index 6ff81002..00000000 --- a/src/client/QXmppOmemoMemoryStorage.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// SPDX-FileCopyrightText: 2022 Melvin Keskin <melvo@olomono.de> -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#include "QXmppOmemoMemoryStorage.h" - -#include "QXmppFutureUtils_p.h" - -using namespace QXmpp::Private; - -/// -/// \class QXmppOmemoMemoryStorage -/// -/// \brief The QXmppOmemoMemoryStorage class stores data used by -/// \xep{0384, OMEMO Encryption} in the memory. -/// -/// \warning THIS API IS NOT FINALIZED YET! -/// -/// \since QXmpp 1.5 -/// - -class QXmppOmemoMemoryStoragePrivate -{ -public: - bool isSetUp = false; - - std::optional<QXmppOmemoStorage::OwnDevice> ownDevice; - - // IDs of pre key pairs mapped to pre key pairs - QHash<uint32_t, QByteArray> preKeyPairs; - - // IDs of signed pre key pairs mapped to signed pre key pairs - QHash<uint32_t, QXmppOmemoStorage::SignedPreKeyPair> signedPreKeyPairs; - - // recipient JID mapped to device ID mapped to device - QHash<QString, QHash<uint32_t, QXmppOmemoStorage::Device>> devices; -}; - -/// -/// Constructs an OMEMO memory storage. -/// -QXmppOmemoMemoryStorage::QXmppOmemoMemoryStorage() - : d(new QXmppOmemoMemoryStoragePrivate) -{ -} - -QXmppOmemoMemoryStorage::~QXmppOmemoMemoryStorage() = default; - -/// \cond -QFuture<QXmppOmemoStorage::OmemoData> QXmppOmemoMemoryStorage::allData() -{ - return makeReadyFuture(std::move(OmemoData { d->ownDevice, - d->signedPreKeyPairs, - d->preKeyPairs, - d->devices })); -} - -QFuture<void> QXmppOmemoMemoryStorage::setOwnDevice(const std::optional<OwnDevice> &device) -{ - d->ownDevice = device; - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::addSignedPreKeyPair(const uint32_t keyId, const SignedPreKeyPair &keyPair) -{ - d->signedPreKeyPairs.insert(keyId, keyPair); - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::removeSignedPreKeyPair(const uint32_t keyId) -{ - d->signedPreKeyPairs.remove(keyId); - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::addPreKeyPairs(const QHash<uint32_t, QByteArray> &keyPairs) -{ - d->preKeyPairs.insert(keyPairs); - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::removePreKeyPair(const uint32_t keyId) -{ - d->preKeyPairs.remove(keyId); - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::addDevice(const QString &jid, const uint32_t deviceId, const QXmppOmemoStorage::Device &device) -{ - d->devices[jid].insert(deviceId, device); - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::removeDevice(const QString &jid, const uint32_t deviceId) -{ - auto &devices = d->devices[jid]; - devices.remove(deviceId); - - // Remove the container for the passed JID if the container stores no - // devices anymore. - if (devices.isEmpty()) { - d->devices.remove(jid); - } - - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::removeDevices(const QString &jid) -{ - d->devices.remove(jid); - return makeReadyFuture(); -} - -QFuture<void> QXmppOmemoMemoryStorage::resetAll() -{ - d.reset(new QXmppOmemoMemoryStoragePrivate()); - return makeReadyFuture(); -} -/// \endcond |
