Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plain text config file #107

Open
hagabaka opened this issue Dec 11, 2015 · 4 comments
Open

Plain text config file #107

hagabaka opened this issue Dec 11, 2015 · 4 comments

Comments

@hagabaka
Copy link

Currently the config file consists of Qt serializations of setting data, which is not humanly readable or editable. It would be nice to use plain text in the config file. It should be implementable using QSettings's "array" support.

As benefits of this change, users can quickly add their networks and channels without using Communi's UI. New settings can be added without necessarily being shown in the UI, which may be useful for plugins or uncommon features.

The only drawback is stored passwords will be plainly visible too, but Qt serialization doesn't really provide secrecy anyway, and a good solution for that would be to use encrypted storage for passwords.

@Venemo
Copy link
Contributor

Venemo commented May 14, 2017

@hagabaka Do you have a suggestion about that encrypted storage?

@hagabaka
Copy link
Author

What about QtKeychain?

QtKeychain is a Qt API to store passwords and other secret data securely. How the data is stored depends on the platform:

  • Mac OS X: Passwords are stored in the OS X Keychain.
  • Linux/Unix: If running, GNOME Keyring is used, otherwise qtkeychain tries to use KWallet (via D-Bus), if available.
  • Windows: By default, the Windows Credential Store is used (requires Windows 7 or newer). Pass -DUSE_CREDENTIAL_STORE=OFF to cmake use disable it. If disabled, QtKeychain uses the Windows API function CryptProtectData to encrypt the password with the user's logon credentials. The encrypted data is then persisted via QSettings.

@Venemo
Copy link
Contributor

Venemo commented May 14, 2017

@hagabaka Sounds nice. Let's deal with secure passwords in #125 and talk about the plain text config file. What exactly are you proposing? Simply put a QMap<QString, QVariant> into QSettings? Would that store the stuff in plain text?

@Venemo
Copy link
Contributor

Venemo commented May 14, 2017

One more issue here: we would need to take care of users updating from earlier versions so that they don't lose their settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants