remove ask for pw in favor of a fn arg

Co-authored-by: Alpisc <Alpisc@users.noreply.github.com>
This commit is contained in:
Mystikfluu
2023-01-13 22:29:00 +01:00
co-authored by Alpisc
parent 380ae20437
commit d2c9adefdc
3 changed files with 7 additions and 40 deletions
+5 -15
View File
@@ -198,11 +198,10 @@ pub fn get_ipass_folder() -> String {
return path;
}
pub fn create_entry(name: &String, pw: String) -> bool {
pub fn create_entry(name: &String, pw: String, mpw: String) -> bool {
if std::path::Path::new(&(get_ipass_folder()+name+".ipass")).exists() {
return false;
}
let mpw = ask_for_pw();
// println!("{pw}");
let pw = encrypt_pass(name.to_owned(), pw,mpw);
let mut file = File::create(get_ipass_folder()+name+".ipass").unwrap();
@@ -215,13 +214,11 @@ fn read_entry(name:&String,mpw:String) -> String {
return decrypt_pass(name.to_owned(),hex::decode(content).unwrap(),mpw).to_owned();
}
pub fn get_entry(name:&String) -> String {
let mpw = ask_for_pw();
pub fn get_entry(name:&String, mpw: String) -> String {
return read_entry(name,mpw);
}
pub fn edit_password(name:&String, password:String) {
let mpw = ask_for_pw();
pub fn edit_password(name:&String, password:String, mpw: String) {
let entry = read_entry(name, mpw.clone());
// println!("entry: {entry}");
let mut parts = entry.split(";");
@@ -232,8 +229,7 @@ pub fn edit_password(name:&String, password:String) {
file.write_all(data.as_bytes()).unwrap();
}
pub fn edit_username(name:&String, username: String) {
let mpw = ask_for_pw();
pub fn edit_username(name:&String, username: String, mpw: String) {
let entry = read_entry(name, mpw.clone());
// println!("entry: {entry}");
let mut parts = entry.split(";");
@@ -244,11 +240,6 @@ pub fn edit_username(name:&String, username: String) {
file.write_all(data.as_bytes()).unwrap();
}
fn ask_for_pw() -> String {
let output = rpassword::prompt_password("Please enter the master password: ").unwrap();
return output.replace("\n", "").replace("\r","");
}
pub fn prompt_answer(toprint: String) -> String {
prompt_answer_nolower(toprint).to_lowercase()
}
@@ -262,7 +253,7 @@ pub fn prompt_answer_nolower(toprint: String) -> String {
return choice.trim().to_string();
}
pub fn rename(name: &String, new_name: &String) {
pub fn rename(name: &String, new_name: &String, mpw: String) {
if !std::path::Path::new(&(get_ipass_folder()+name+".ipass")).exists() {
return;
}
@@ -270,7 +261,6 @@ pub fn rename(name: &String, new_name: &String) {
return;
}
let content = &mut read_to_string(get_ipass_folder()+name+".ipass").expect("Should have been able to read the file");
let mpw = ask_for_pw();
let mut pw = decrypt_pass(name.to_owned(),hex::decode(content).unwrap(),mpw.clone()).to_owned();
pw = encrypt_pass(new_name.to_owned(), pw,mpw);