diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-04-18 05:16:57 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-04-18 05:16:57 -0400 |
commit | 017f1b04df0701e21e7cb44e3e4f6fc505d95638 (patch) | |
tree | 5b693b3b2486702752d8b3087b887282e3097d78 /src | |
parent | e5ccbac220b1f14e3cede1b55bad92a4f537c8c9 (diff) | |
download | rbw-017f1b04df0701e21e7cb44e3e4f6fc505d95638.tar.gz rbw-017f1b04df0701e21e7cb44e3e4f6fc505d95638.zip |
better decrypt_cipher error handling
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/rbw/commands.rs | 56 |
1 files changed, 40 insertions, 16 deletions
diff --git a/src/bin/rbw/commands.rs b/src/bin/rbw/commands.rs index f3977d8..da94ffa 100644 --- a/src/bin/rbw/commands.rs +++ b/src/bin/rbw/commands.rs @@ -333,25 +333,49 @@ fn find_entry( } } -fn decrypt_cipher(entry: rbw::db::Entry) -> anyhow::Result<DecryptedCipher> { +fn decrypt_cipher(entry: &rbw::db::Entry) -> anyhow::Result<DecryptedCipher> { + let username = entry + .username + .as_ref() + .map(|username| crate::actions::decrypt(username)) + .transpose(); + let username = match username { + Ok(username) => username, + Err(e) => { + log::warn!("failed to decrypt username: {}", e); + None + } + }; + let password = entry + .password + .as_ref() + .map(|password| crate::actions::decrypt(password)) + .transpose(); + let password = match password { + Ok(password) => password, + Err(e) => { + log::warn!("failed to decrypt password: {}", e); + None + } + }; + let notes = entry + .notes + .as_ref() + .map(|notes| crate::actions::decrypt(notes)) + .transpose(); + let notes = match notes { + Ok(notes) => notes, + Err(e) => { + log::warn!("failed to decrypt notes: {}", e); + None + } + }; Ok(DecryptedCipher { id: entry.id.clone(), name: crate::actions::decrypt(&entry.name)?, - username: entry - .username - .as_ref() - .map(|username| crate::actions::decrypt(username)) - .transpose()?, - password: entry - .password - .as_ref() - .map(|password| crate::actions::decrypt(password)) - .transpose()?, - notes: entry - .notes - .as_ref() - .map(|notes| crate::actions::decrypt(notes)) - .transpose()?, + username, + password, + notes, }) } |