Hash admin passwords
This commit is contained in:
parent
980a85d41b
commit
86495543ce
7 changed files with 106 additions and 7 deletions
16
src/main.rs
16
src/main.rs
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue