mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-17 00:06:05 +03:00
fix: keystore write error fallback
This commit is contained in:
@@ -97,8 +97,8 @@ void SecureQSettings::setValue(const QString &key, const QVariant &value)
|
||||
QByteArray encryptedValue = encryptText(decryptedValue);
|
||||
m_settings.setValue(key, magicString + encryptedValue);
|
||||
} else {
|
||||
qCritical() << "SecureQSettings::setValue Encryption required, but key is empty";
|
||||
return;
|
||||
qCritical() << "SecureQSettings::setValue Keystore unavailable, storing unencrypted";
|
||||
m_settings.setValue(key, value);
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -211,7 +211,7 @@ bool SecureQSettings::encryptionRequired() const
|
||||
// QtKeyChain failing on Linux
|
||||
return false;
|
||||
#endif
|
||||
return true;
|
||||
return m_keystoreAvailable;
|
||||
}
|
||||
|
||||
QByteArray SecureQSettings::getEncKey() const
|
||||
@@ -237,6 +237,7 @@ QByteArray SecureQSettings::getEncKey() const
|
||||
m_key = getSecTag(settingsKeyTag);
|
||||
if (key != m_key) {
|
||||
qCritical() << "SecureQSettings::getEncKey Unable to store key in keychain" << key.size() << m_key.size();
|
||||
m_keystoreAvailable = false;
|
||||
return {};
|
||||
}
|
||||
}
|
||||
@@ -265,6 +266,7 @@ QByteArray SecureQSettings::getEncIv() const
|
||||
m_iv = getSecTag(settingsIvTag);
|
||||
if (iv != m_iv) {
|
||||
qCritical() << "SecureQSettings::getEncIv Unable to store IV in keychain" << iv.size() << m_iv.size();
|
||||
m_keystoreAvailable = false;
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ private:
|
||||
|
||||
mutable QByteArray m_key;
|
||||
mutable QByteArray m_iv;
|
||||
mutable bool m_keystoreAvailable = true;
|
||||
|
||||
const QByteArray magicString { "EncData" }; // Magic keyword used for mark encrypted QByteArray
|
||||
|
||||
|
||||
Reference in New Issue
Block a user