fix: keystore write error fallback

This commit is contained in:
NickVs2015
2026-05-11 16:45:24 +03:00
parent c7b1c2809f
commit f07bc2132e
2 changed files with 6 additions and 3 deletions
+5 -3
View File
@@ -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 {};
} }
} }
+1
View File
@@ -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