From cf153397129604912b7017a8fbcc96bd61117a7c Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sun, 2 Jun 2019 23:50:18 -0400 Subject: [PATCH] set command updated --- src/main.rs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main.rs b/src/main.rs index 51f7bd0..97c0af9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,7 +18,7 @@ static USAGE: &'static str = " foil Usage: - foil set [--db=] + foil set [--namespace=] [--db=] foil get [--namespace=] [--db=] foil list [--db=] foil transfer [--db=] @@ -120,7 +120,7 @@ fn get(mut db_conn: db::DbHandle, master_key: [u8; 32], namespace: &str) { } } -fn set(mut db_conn: db::DbHandle, master_key: [u8; 32]) { +fn set(mut db_conn: db::DbHandle, master_key: [u8; 32], namespace: &str) { println!("Adding a site to the database"); let host: String = Input::with_theme(&ColorfulTheme::default()) .with_prompt("hostname") @@ -130,18 +130,21 @@ fn set(mut db_conn: db::DbHandle, master_key: [u8; 32]) { .with_prompt("username") .interact() .unwrap(); - let encrypted_host: crypt::EncryptedValue = crypt::encrypt_value(&host, master_key); - let encrypted_username: crypt::EncryptedValue = crypt::encrypt_value(&username, master_key); - let encrypted_password: crypt::EncryptedValue = { - let password: String = PasswordInput::with_theme(&ColorfulTheme::default()) - .with_prompt("Site password") - .with_confirmation("Repeat site password", "Error: the passwords don't match.") - .interact() - .unwrap(); - crypt::encrypt_value(&password, master_key) - }; - db_conn.delete_account_with_host(master_key, &host); - let _account_id = db_conn.write_account(encrypted_host, encrypted_username, encrypted_password); + let password: String = PasswordInput::with_theme(&ColorfulTheme::default()) + .with_prompt("Site password") + .with_confirmation("Repeat site password", "Error: the passwords don't match.") + .interact() + .unwrap(); + db_conn.write_note( + master_key, + db::Note { + id: 0, + namespace: namespace.to_string(), + category: "account".to_string(), + title: host, + value: format!("username: {}\npassword: {}\n", username, password), + }, + ); println!("Successfully added password"); } @@ -188,7 +191,7 @@ fn main() -> Result<(), Box> { let master_key: [u8; 32] = get_master_key(&mut db_conn); if args.cmd_set { - set(db_conn, master_key); + set(db_conn, master_key, &args.flag_namespace); } else if args.cmd_get { get(db_conn, master_key, &args.flag_namespace); } else if args.cmd_list {