mirror of
https://github.com/002Hub/IPass.git
synced 2025-04-19 22:01:21 +02:00
fix bug when renaming entry
This commit is contained in:
parent
d40f297e19
commit
c4d3d09e08
16
src/main.rs
16
src/main.rs
@ -5,7 +5,7 @@ use std::io::Write;
|
|||||||
mod utils;
|
mod utils;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let version = "0.2.0";
|
let version = "0.2.1";
|
||||||
println!("IPass v{}\n", version);
|
println!("IPass v{}\n", version);
|
||||||
|
|
||||||
let args = utils::get_args();
|
let args = utils::get_args();
|
||||||
@ -110,7 +110,7 @@ fn list() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add(args: &Vec<String>) {
|
fn add(args: &Vec<String>) { //TODO: format: [specifier] [email or username] {password}
|
||||||
|
|
||||||
if args.len() < 3 || args.len() > 4 {
|
if args.len() < 3 || args.len() > 4 {
|
||||||
println!("Incorrect usage of \"add\"");
|
println!("Incorrect usage of \"add\"");
|
||||||
@ -123,17 +123,21 @@ fn add(args: &Vec<String>) {
|
|||||||
pw = args[3].trim().to_owned();
|
pw = args[3].trim().to_owned();
|
||||||
} else {
|
} else {
|
||||||
let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!\"§$%&/()=?´`²³{[]}\\,.-;:_><|+*#'";
|
let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!\"§$%&/()=?´`²³{[]}\\,.-;:_><|+*#'";
|
||||||
let char_set:Vec<char> = alphabet.clone().chars().collect();
|
let alph_len = alphabet.chars().count();
|
||||||
|
let char_set:Vec<char> = alphabet.chars().collect();
|
||||||
let mut chars_index: Vec<u8> = vec![0;20];
|
let mut chars_index: Vec<u8> = vec![0;20];
|
||||||
OsRng.fill_bytes(&mut chars_index);
|
OsRng.fill_bytes(&mut chars_index);
|
||||||
let mut chars = String::new();
|
let mut chars = String::new();
|
||||||
|
|
||||||
for index in chars_index {
|
for index in chars_index {
|
||||||
chars += &char_set[(index%((alphabet.len()-1) as u8)) as usize].to_string();
|
// println!("{} - {} - {}",index,(index as usize)%(alph_len-1),alph_len);
|
||||||
|
chars += &char_set[(index as usize)%(alph_len-1)].to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
pw = chars;
|
pw = chars;
|
||||||
|
|
||||||
|
println!("Using auto generated password");
|
||||||
|
// println!("pw: {pw}");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("Adding password for {}",args[2]);
|
println!("Adding password for {}",args[2]);
|
||||||
@ -191,7 +195,7 @@ fn rename(args: &Vec<String>) { // prog ren old new
|
|||||||
}
|
}
|
||||||
let filepath = &(utils::get_ipass_folder()+&args[2]+".ipass");
|
let filepath = &(utils::get_ipass_folder()+&args[2]+".ipass");
|
||||||
if std::path::Path::new(filepath).exists() {
|
if std::path::Path::new(filepath).exists() {
|
||||||
std::fs::rename(format!("{}/{}.ipass",utils::get_ipass_folder(),args[2]), format!("{}/{}.ipass",utils::get_ipass_folder(),args[3])).unwrap();
|
utils::rename(&args[2],&args[3]);
|
||||||
println!("Renamed {} to {}", args[2], args[3]);
|
println!("Renamed {} to {}", args[2], args[3]);
|
||||||
} else {
|
} else {
|
||||||
println!("No such file");
|
println!("No such file");
|
||||||
|
16
src/utils.rs
16
src/utils.rs
@ -112,3 +112,19 @@ pub fn prompt_answer(toprint: String) -> String {
|
|||||||
|
|
||||||
return choice.trim().to_lowercase();
|
return choice.trim().to_lowercase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn rename(name: &String, new_name: &String) {
|
||||||
|
if !std::path::Path::new(&(get_ipass_folder()+name+".ipass")).exists() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if std::path::Path::new(&(get_ipass_folder()+new_name+".ipass")).exists() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let content = &mut std::fs::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);
|
||||||
|
let mut file = std::fs::File::create(get_ipass_folder()+new_name+".ipass").unwrap();
|
||||||
|
file.write_all(pw.as_bytes()).unwrap();
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user