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