feat: v1.0.8, direct init secure read password
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -1,6 +1,6 @@
|
|||||||
# This file is automatically @generated by Cargo.
|
# This file is automatically @generated by Cargo.
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 4
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "addr2line"
|
name = "addr2line"
|
||||||
@@ -1007,7 +1007,7 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "local-mini-kms"
|
name = "local-mini-kms"
|
||||||
version = "1.0.7"
|
version = "1.0.8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes-gcm-stream",
|
"aes-gcm-stream",
|
||||||
"aes-kw",
|
"aes-kw",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "local-mini-kms"
|
name = "local-mini-kms"
|
||||||
version = "1.0.7"
|
version = "1.0.8"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|||||||
19
src/cli.rs
19
src/cli.rs
@@ -76,7 +76,24 @@ async fn do_direct_init(_arg_matches: &ArgMatches<'_>, sub_arg_matches: &ArgMatc
|
|||||||
} else if let Some(value_base64) = value_base64 {
|
} else if let Some(value_base64) = value_base64 {
|
||||||
body_map.insert("clear_master_key_base64".to_string(), value_base64.into());
|
body_map.insert("clear_master_key_base64".to_string(), value_base64.into());
|
||||||
} else {
|
} else {
|
||||||
return simple_error!("Requires value hex or value base64");
|
let pin = match pinentry_util::read_pin(
|
||||||
|
Some("Input your clear master key, starts with hex: or base64:"),
|
||||||
|
Some("Clear master key: ")) {
|
||||||
|
Ok(pin) => pin,
|
||||||
|
Err(e) => return simple_error!("Read clear master key failed: {}", e),
|
||||||
|
};
|
||||||
|
let pin_str = pin.get_pin();
|
||||||
|
let clear_master_key = if pin_str.starts_with("hex:") {
|
||||||
|
let hex: String = pin_str.chars().skip(4).collect();
|
||||||
|
hex::decode(&hex)?
|
||||||
|
} else if pin_str.starts_with("base64:") {
|
||||||
|
let base64: String = pin_str.chars().skip(7).collect();
|
||||||
|
STANDARD.decode(&base64)?
|
||||||
|
} else {
|
||||||
|
return simple_error!("Clear master key must starts with hex: or base64:");
|
||||||
|
};
|
||||||
|
|
||||||
|
body_map.insert("clear_master_key_hex".to_string(), hex::encode(&clear_master_key).into());
|
||||||
}
|
}
|
||||||
if let Some(yubikey_challenge) = yubikey_challenge {
|
if let Some(yubikey_challenge) = yubikey_challenge {
|
||||||
body_map.insert("yubikey_challenge".to_string(), yubikey_challenge.into());
|
body_map.insert("yubikey_challenge".to_string(), yubikey_challenge.into());
|
||||||
|
|||||||
Reference in New Issue
Block a user