Hash admin passwords

This commit is contained in:
Pascal Engélibert 2022-10-15 17:32:35 +02:00
commit 86495543ce
Signed by: tuxmain
GPG key ID: 3504BC6D362F7DCA
7 changed files with 106 additions and 7 deletions

View file

@ -6,6 +6,10 @@ mod queries;
mod server;
mod templates;
use argon2::{
password_hash::{rand_core::OsRng, PasswordHasher, SaltString},
Argon2,
};
use clap::Parser;
#[async_std::main]
@ -20,6 +24,18 @@ async fn main() {
let (config, dbs, templates) = init_all(opt.opt, subopt);
server::start_server(config, dbs, templates).await
}
cli::MainSubcommand::Psw => {
let mut config = config::read_config(&opt.opt.dir.0);
let password = rpassword::prompt_password("Additional admin password: ").unwrap();
let salt = SaltString::generate(&mut OsRng);
let argon2 = Argon2::default();
let password_hash = argon2
.hash_password(password.as_bytes(), &salt)
.unwrap()
.to_string();
config.admin_passwords.push(password_hash);
config::write_config(&opt.opt.dir.0, &config);
}
}
}