aboutsummaryrefslogtreecommitdiff
path: root/lib/settings.cpp
diff options
context:
space:
mode:
authorAlexey Andreyev <aa13q@ya.ru>2019-06-22 19:57:18 +0300
committerAlexey Andreyev <aa13q@ya.ru>2019-07-04 11:21:06 +0300
commit69ba71cca36b4a90328d169c845195f39c041a3a (patch)
treedfcb78bc916b03e13a54c4f8cd707e3324cb2894 /lib/settings.cpp
parent46a7350086e42ea3960fe54ef5c68b2207527899 (diff)
downloadlibquotient-69ba71cca36b4a90328d169c845195f39c041a3a.tar.gz
libquotient-69ba71cca36b4a90328d169c845195f39c041a3a.zip
Add EncryptionManager class. Add AccountSettings::encryptionAccountPickle logic.
Diffstat (limited to 'lib/settings.cpp')
-rw-r--r--lib/settings.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/settings.cpp b/lib/settings.cpp
index 124d7042..5f10299c 100644
--- a/lib/settings.cpp
+++ b/lib/settings.cpp
@@ -90,6 +90,7 @@ QMC_DEFINE_SETTING(AccountSettings, bool, keepLoggedIn, "keep_logged_in", false,
static const auto HomeserverKey = QStringLiteral("homeserver");
static const auto AccessTokenKey = QStringLiteral("access_token");
+static const auto EncryptionAccountPickleKey = QStringLiteral("encryption_account_pickle");
QUrl AccountSettings::homeserver() const
{
@@ -114,7 +115,7 @@ QString AccountSettings::accessToken() const
void AccountSettings::setAccessToken(const QString& accessToken)
{
qCWarning(MAIN) << "Saving access_token to QSettings is insecure."
- " Developers, please save access_token separately.";
+ " Developers, do it manually or contribute to share QtKeychain logic to libQuotient.";
setValue(AccessTokenKey, accessToken);
}
@@ -124,3 +125,22 @@ void AccountSettings::clearAccessToken()
legacySettings.remove(QStringLiteral("device_id")); // Force the server to re-issue it
remove(AccessTokenKey);
}
+
+QByteArray AccountSettings::encryptionAccountPickle()
+{
+ QString passphrase = ""; // FIXME: add QtKeychain
+ return value("encryption_account_pickle", "").toByteArray();
+}
+
+void AccountSettings::setEncryptionAccountPickle(const QByteArray& encryptionAccountPickle)
+{
+ qCWarning(MAIN) << "Saving encryption_account_pickle to QSettings is insecure."
+ " Developers, do it manually or contribute to share QtKeychain logic to libQuotient.";
+ QString passphrase = ""; // FIXME: add QtKeychain
+ setValue("encryption_account_pickle", encryptionAccountPickle);
+}
+
+void AccountSettings::clearEncryptionAccountPickle()
+{
+ remove(EncryptionAccountPickleKey); // TODO: Force to re-issue it?
+}