From 74329aee7a6d8404e21dcbbfd906689f81ee95ad Mon Sep 17 00:00:00 2001 From: liujinchang Date: Thu, 27 Jun 2024 14:38:13 +0800 Subject: [PATCH] feat: [safety] string encrypt input. 1.encrypt dbus pwd input Log: as title Bug: https://pms.uniontech.com/bug-view-259823.html --- .../mountpasswddialog/mountaskpassworddialog.cpp | 10 +++++++++- .../dialogs/mountpasswddialog/mountaskpassworddialog.h | 2 ++ .../mounthelpers/cifsmounthelper.cpp | 5 +++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.cpp b/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.cpp index 2a26310efc..e009e53c99 100644 --- a/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.cpp +++ b/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.cpp @@ -163,7 +163,7 @@ void MountAskPasswordDialog::handleConnect() loginObj.insert(kUser, usernameLineEdit->text()); loginObj.insert(kDomain, domainLineEdit->text()); - loginObj.insert(kPasswd, passwordLineEdit->text()); + loginObj.insert(kPasswd, encryptPasswd(passwordLineEdit->text())); if (passwordCheckBox->isChecked()) { loginObj.insert(kPasswdSaveMode, kSavePermanently); @@ -173,6 +173,14 @@ void MountAskPasswordDialog::handleConnect() accept(); } +QString MountAskPasswordDialog::encryptPasswd(const QString &passwd) +{ + //todo use encrypt-plugin + QByteArray byteArray = passwd.toUtf8(); + QByteArray encodedByteArray = byteArray.toBase64(); + return QString::fromUtf8(encodedByteArray); +} + void MountAskPasswordDialog::handleButtonClicked(int index, QString text) { Q_UNUSED(text) diff --git a/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.h b/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.h index db13b999fe..af7d905ca6 100644 --- a/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.h +++ b/src/dfm-base/dialogs/mountpasswddialog/mountaskpassworddialog.h @@ -38,6 +38,8 @@ class MountAskPasswordDialog : public DTK_WIDGET_NAMESPACE::DDialog void setDomain(const QString &domain); void setUser(const QString &user); + QString encryptPasswd(const QString &passwd); + enum { kNeverSave, kSaveBeforeLogout, diff --git a/src/plugins/daemon/daemonplugin-mountcontrol/mounthelpers/cifsmounthelper.cpp b/src/plugins/daemon/daemonplugin-mountcontrol/mounthelpers/cifsmounthelper.cpp index bf59ba64e3..45c6b0ad1d 100644 --- a/src/plugins/daemon/daemonplugin-mountcontrol/mounthelpers/cifsmounthelper.cpp +++ b/src/plugins/daemon/daemonplugin-mountcontrol/mounthelpers/cifsmounthelper.cpp @@ -269,8 +269,9 @@ QString CifsMountHelper::mountRoot() QString CifsMountHelper::decryptPasswd(const QString &passwd) { - // TODO(xust): encrypt and decrypt passwd - return passwd; + QByteArray encodedByteArray = passwd.toUtf8(); + QByteArray decodedByteArray = QByteArray::fromBase64(encodedByteArray); + return QString::fromUtf8(decodedByteArray); } uint CifsMountHelper::invokerUid()