Secure settings 2
This commit is contained in:
parent
870cb26e01
commit
71b57bfed1
7 changed files with 110 additions and 35 deletions
47
client/secure_qsettings.cpp
Normal file
47
client/secure_qsettings.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#include "secure_qsettings.h"
|
||||
#include "secureformat.h"
|
||||
|
||||
#include <QDataStream>
|
||||
|
||||
SecureQSettings::SecureQSettings(const QString &organization, const QString &application, QObject *parent)
|
||||
: QObject{parent},
|
||||
m_setting(organization, application, parent)
|
||||
{
|
||||
encrypted = m_setting.value("encrypted").toBool();
|
||||
|
||||
// convert settings to encrypted
|
||||
if (! encrypted) {
|
||||
// TODO: convert
|
||||
// m_setting.sync();
|
||||
}
|
||||
}
|
||||
|
||||
QVariant SecureQSettings::value(const QString &key, const QVariant &defaultValue) const
|
||||
{
|
||||
if (encrypted) {
|
||||
QByteArray encryptedValue = m_setting.value(key, defaultValue).toByteArray();
|
||||
QByteArray decryptedValue = decryptText(encryptedValue);
|
||||
|
||||
QDataStream ds(&decryptedValue, QIODevice::ReadOnly);
|
||||
QVariant v;
|
||||
ds >> v;
|
||||
return v;
|
||||
}
|
||||
else {
|
||||
return m_setting.value(key, defaultValue);
|
||||
}
|
||||
}
|
||||
|
||||
void SecureQSettings::setValue(const QString &key, const QVariant &value)
|
||||
{
|
||||
QByteArray decryptedValue;
|
||||
{
|
||||
QDataStream ds(&decryptedValue, QIODevice::WriteOnly);
|
||||
ds << value;
|
||||
}
|
||||
|
||||
QByteArray encryptedValue = encryptText(decryptedValue);
|
||||
m_setting.setValue(key, encryptedValue);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue