fix(crypt): symmetric crypt compatibility
Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
1 parent
4d8af61d5c
commit
14632284d7
1 file changed
+16
-4
+16
-4
@@ -516,12 +516,17 @@ impl Config2 {
|
|||||||
|
|
||||||
fn store(&self) {
|
fn store(&self) {
|
||||||
let mut config = self.clone();
|
let mut config = self.clone();
|
||||||
|
let stored = Config::load_::<Config2>("2");
|
||||||
if let Some(mut socks) = config.socks {
|
if let Some(mut socks) = config.socks {
|
||||||
|
let stored_password = stored
|
||||||
|
.socks
|
||||||
|
.as_ref()
|
||||||
|
.map(|socks| socks.password.as_str())
|
||||||
|
.unwrap_or_default();
|
||||||
socks.password =
|
socks.password =
|
||||||
encrypt_str_or_original(&socks.password, PASSWORD_ENC_VERSION, ENCRYPT_MAX_LEN);
|
keep_encrypted_storage_if_plaintext_unchanged(&socks.password, stored_password);
|
||||||
config.socks = Some(socks);
|
config.socks = Some(socks);
|
||||||
}
|
}
|
||||||
let stored = Config::load_::<Config2>("2");
|
|
||||||
config.unlock_pin =
|
config.unlock_pin =
|
||||||
keep_encrypted_storage_if_plaintext_unchanged(&config.unlock_pin, &stored.unlock_pin);
|
keep_encrypted_storage_if_plaintext_unchanged(&config.unlock_pin, &stored.unlock_pin);
|
||||||
Config::store_(&config, "2");
|
Config::store_(&config, "2");
|
||||||
@@ -716,8 +721,15 @@ impl Config {
|
|||||||
if !config.password.is_empty()
|
if !config.password.is_empty()
|
||||||
&& decode_permanent_password_h1_from_storage(&config.password).is_none()
|
&& decode_permanent_password_h1_from_storage(&config.password).is_none()
|
||||||
{
|
{
|
||||||
config.password =
|
let stored = Config::load_::<Config>("");
|
||||||
encrypt_str_or_original(&config.password, PASSWORD_ENC_VERSION, ENCRYPT_MAX_LEN);
|
if stored.password == config.password {
|
||||||
|
config.password = stored.password;
|
||||||
|
} else {
|
||||||
|
config.password = keep_encrypted_storage_if_plaintext_unchanged(
|
||||||
|
&config.password,
|
||||||
|
&stored.password,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let (stored_id, encrypted, _) =
|
let (stored_id, encrypted, _) =
|
||||||
decrypt_str_or_original(&config.enc_id, PASSWORD_ENC_VERSION);
|
decrypt_str_or_original(&config.enc_id, PASSWORD_ENC_VERSION);
|
||||||
|
|||||||
Reference in new issue
Block a user