diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2013-03-19 22:20:23 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2013-03-19 22:47:50 +0100 |
commit | aa898d65fef0a8695e8412480146d1b6048771f2 (patch) | |
tree | 4839177614e34ff5b64dc5c0a2e3f17c897ce6e5 /rbutil/rbutilqt/rbutilqt.cpp | |
parent | 9965849765bb113801d2d4c93e07fc259d307f3e (diff) | |
download | rockbox-aa898d65fef0a8695e8412480146d1b6048771f2.tar.gz rockbox-aa898d65fef0a8695e8412480146d1b6048771f2.zip |
Encode the password using base64 before storing it to the configuration file.
There are two reasons for this:
- QUrl::toEncoded() has problems with some characters like the colon and @.
Those are not percent encoded, causing the string getting parsed wrongly when
reading it back (see FS#12166).
- The password is cleartext in the configuration file.
While using base64 doesn't provide any real security either it's at
least better than plaintext.
Since this program is open source any fixed mechanism to obfuscate /
encrypt the password isn't much help either since anyone interested in
the password can look at the sources. The best way would be to
eventually use host OS functionality to store the password.
Change-Id: I6ac49d68211236e540b6ca16481e0e1c196532b7
Diffstat (limited to 'rbutil/rbutilqt/rbutilqt.cpp')
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index c5cdeb1cf7..6ff80c3cc2 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp | |||
@@ -610,8 +610,12 @@ QUrl RbUtilQt::proxy() | |||
610 | { | 610 | { |
611 | QUrl proxy; | 611 | QUrl proxy; |
612 | QString proxytype = RbSettings::value(RbSettings::ProxyType).toString(); | 612 | QString proxytype = RbSettings::value(RbSettings::ProxyType).toString(); |
613 | if(proxytype == "manual") | 613 | if(proxytype == "manual") { |
614 | proxy.setEncodedUrl(RbSettings::value(RbSettings::Proxy).toByteArray()); | 614 | proxy.setUrl(RbSettings::value(RbSettings::Proxy).toString(), |
615 | QUrl::TolerantMode); | ||
616 | QByteArray pw = QByteArray::fromBase64(proxy.password().toUtf8()); | ||
617 | proxy.setPassword(pw); | ||
618 | } | ||
615 | else if(proxytype == "system") | 619 | else if(proxytype == "system") |
616 | proxy = System::systemProxy(); | 620 | proxy = System::systemProxy(); |
617 | 621 | ||