This commit is contained in:
parent
d3eb44852b
commit
2a869eafe7
24
src/main.rs
24
src/main.rs
@ -84,8 +84,7 @@ fn open(conf: &Config, secret: &[u8; 32]) -> Fido2LuksResult<()> {
|
|||||||
fn main() -> Fido2LuksResult<()> {
|
fn main() -> Fido2LuksResult<()> {
|
||||||
let args: Vec<_> = env::args().skip(1).collect(); //Ignore program name -> Vec
|
let args: Vec<_> = env::args().skip(1).collect(); //Ignore program name -> Vec
|
||||||
let env = env::vars().collect::<HashMap<_, _>>();
|
let env = env::vars().collect::<HashMap<_, _>>();
|
||||||
let conf = Config::load_default_location()?;
|
let secret = |conf: &Config| -> Fido2LuksResult<[u8; 32]> {
|
||||||
let secret = || -> Fido2LuksResult<[u8; 32]> {
|
|
||||||
let salt = conf.input_salt.obtain(&conf.password_helper)?;
|
let salt = conf.input_salt.obtain(&conf.password_helper)?;
|
||||||
|
|
||||||
Ok(assemble_secret(
|
Ok(assemble_secret(
|
||||||
@ -94,27 +93,30 @@ fn main() -> Fido2LuksResult<()> {
|
|||||||
))
|
))
|
||||||
};
|
};
|
||||||
if args.is_empty() {
|
if args.is_empty() {
|
||||||
|
let conf = Config::load_default_location()?;
|
||||||
if env.contains_key("CRYPTTAB_NAME") {
|
if env.contains_key("CRYPTTAB_NAME") {
|
||||||
//Indicates that this script is being run as keyscript
|
//Indicates that this script is being run as keyscript
|
||||||
let mut out = stdout();
|
let mut out = stdout();
|
||||||
out.write(&secret()?)?;
|
out.write(&secret(&conf)?)?;
|
||||||
Ok(out.flush()?)
|
Ok(out.flush()?)
|
||||||
} else {
|
} else {
|
||||||
io::stdout().write(&secret()?)?;
|
io::stdout().write(&secret(&conf)?)?;
|
||||||
Ok(io::stdout().flush()?)
|
Ok(io::stdout().flush()?)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
match args.first().map(|s| s.as_ref()).unwrap() {
|
match args.first().map(|s| s.as_ref()).unwrap() {
|
||||||
"addkey" => add_key_to_luks(&conf).map(|_| ()),
|
"addkey" => add_key_to_luks(&Config::load_default_location()?).map(|_| ()),
|
||||||
"setup" => setup(),
|
"setup" => setup(),
|
||||||
"open" if args.get(1).map(|a| &*a == "-e").unwrap_or(false) => open(
|
"open" if args.get(1).map(|a| &*a == "-e").unwrap_or(false) => {
|
||||||
&envy::prefixed("FIDO2LUKS_")
|
let conf = envy::prefixed("FIDO2LUKS_")
|
||||||
.from_env::<EnvConfig>()
|
.from_env::<EnvConfig>()
|
||||||
.expect("Missing env config values")
|
.expect("Missing env config values")
|
||||||
.into(),
|
.into();
|
||||||
&secret()?,
|
open(
|
||||||
),
|
&conf,
|
||||||
"open" => open(&conf, &secret()?),
|
&secret(&conf)?)
|
||||||
|
},
|
||||||
|
"open" => open(&Config::load_default_location()?, &secret(&Config::load_default_location()?)?),
|
||||||
"connected" => match authenticator_connected()? {
|
"connected" => match authenticator_connected()? {
|
||||||
false => {
|
false => {
|
||||||
println!("no");
|
println!("no");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user