aboutsummaryrefslogtreecommitdiff
path: root/omemo_db.h
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-06-29 14:10:06 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-08-30 02:46:41 +0200
commit6ecc6b6f0272a47d41ce5d619eaa779a29fcf9df (patch)
treeb304ad33ecadcd1209347b67d525506356d149f0 /omemo_db.h
parent48cfe26383feb2fcf6638905060c605af8eb2c69 (diff)
downloadxxcc-6ecc6b6f0272a47d41ce5d619eaa779a29fcf9df.tar.gz
WIP OMEMO
Diffstat (limited to 'omemo_db.h')
-rw-r--r--omemo_db.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/omemo_db.h b/omemo_db.h
new file mode 100644
index 0000000..d331d8f
--- /dev/null
+++ b/omemo_db.h
@@ -0,0 +1,54 @@
+#ifndef OMEMO_DB_H
+#define OMEMO_DB_H
+
+#include <QXmppOmemoStorage.h>
+#include <QXmppTask.h>
+#include <QDateTime>
+#include <QByteArray>
+#include <QString>
+#include <cstdint>
+
+class OmemoDb : public QXmppOmemoStorage
+{
+public:
+ OmemoDb(const QString &jid);
+ QXmppTask<OmemoData> allData() override;
+ QXmppTask<void> setOwnDevice(
+ const std::optional<OwnDevice> &device) override;
+ QXmppTask<void> addSignedPreKeyPair(uint32_t keyId,
+ const SignedPreKeyPair &keyPair) override;
+ QXmppTask<void> removeSignedPreKeyPair(uint32_t keyId) override;
+ QXmppTask<void> addPreKeyPairs(
+ const QHash<uint32_t, QByteArray> &keyPairs) override;
+ QXmppTask<void> removePreKeyPair(uint32_t keyId) override;
+ QXmppTask<void> addDevice(const QString &jid,
+ uint32_t deviceId, const Device &device) override;
+ QXmppTask<void> removeDevice(const QString &jid,
+ uint32_t deviceId) override;
+ QXmppTask<void> removeDevices(const QString &jid) override;
+ QXmppTask<void> resetAll() override;
+
+private:
+ const QString &jid;
+ QString service() const;
+ static int storeOwnKeyId(const QString &service, uint32_t id);
+ static int storePrivateIdentityKey(const QString &service,
+ const QByteArray &privateIdentityKey);
+ static int storePublicIdentityKey(const QString &service,
+ const QByteArray &publicIdentityKey);
+ static int storeLatestSignedPreKeyId(const QString &service,
+ uint32_t latestSignedPreKeyId);
+ static int storeLatestPreKeyId(const QString &service,
+ uint32_t latestPreKeyId);
+ static int storeDeviceLabel(const QString &service, const QString &label);
+ static int storeKeyId(const QString &service, const QByteArray &keyId);
+ static int storeSession(const QString &service, const QByteArray &session);
+ static int storeUnrespondedSentStanzasCount(const QString &service,
+ int count);
+ static int storeUnrespondedReceivedStanzasCount(const QString &service,
+ int count);
+ static int storeRemovalFromDeviceListDate(const QString &service,
+ const QDateTime &dt);
+};
+
+#endif