diff options
author | redsky17 <joedonofry@gmail.com> | 2019-03-27 23:13:38 +0000 |
---|---|---|
committer | redsky17 <joedonofry@gmail.com> | 2019-03-27 23:13:38 +0000 |
commit | 994f79cfbcbc27e2721c7dfb0f6e4369063ad519 (patch) | |
tree | 03562cbf9df86258a25af0fc5c0c8f82d5e70091 /src | |
parent | Merge pull request #43 from vtronko/implicitconversion_fix (diff) | |
download | nheko-994f79cfbcbc27e2721c7dfb0f6e4369063ad519.tar.xz |
Update nheko to export sessions using new format
(requires mtxclient updates as well).
Diffstat (limited to 'src')
-rw-r--r-- | src/UserSettingsPage.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index e3c0d190..59b804ee 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -25,6 +25,7 @@ #include <QPushButton> #include <QScrollArea> #include <QSettings> +#include <QTextStream> #include "Config.h" #include "MatrixClient.h" @@ -499,7 +500,7 @@ UserSettingsPage::importSessionKeys() try { auto sessions = mtx::crypto::decrypt_exported_sessions( - mtx::crypto::base642bin(payload), password.toStdString()); + payload, password.toStdString()); cache::client()->importSessionKeys(std::move(sessions)); } catch (const mtx::crypto::sodium_exception &e) { QMessageBox::warning(this, tr("Error"), e.what()); @@ -534,7 +535,7 @@ UserSettingsPage::exportSessionKeys() QFileDialog::getSaveFileName(this, tr("File to save the exported session keys"), "", ""); QFile file(fileName); - if (!file.open(QIODevice::WriteOnly)) { + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { QMessageBox::warning(this, tr("Error"), file.errorString()); return; } @@ -544,9 +545,14 @@ UserSettingsPage::exportSessionKeys() auto encrypted_blob = mtx::crypto::encrypt_exported_sessions( cache::client()->exportSessionKeys(), password.toStdString()); - auto b64 = mtx::crypto::bin2base64(encrypted_blob); + QString b64 = QString::fromStdString( mtx::crypto::bin2base64(encrypted_blob)); - file.write(b64.data(), b64.size()); + QString prefix("-----BEGIN MEGOLM SESSION DATA-----"); + QString suffix("-----END MEGOLM SESSION DATA-----"); + QString newline("\n"); + QTextStream out(&file); + out << prefix << newline << b64 << newline << suffix; + file.close(); } catch (const mtx::crypto::sodium_exception &e) { QMessageBox::warning(this, tr("Error"), e.what()); } catch (const lmdb::error &e) { |