From 5f107cd3378aa2ac49c8d808fbec34e6dd2a6df8 Mon Sep 17 00:00:00 2001 From: shimun Date: Fri, 19 Jun 2020 20:08:32 +0200 Subject: [PATCH] add non existing token --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/luks.rs | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e9dd9c1..878f631 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -369,7 +369,7 @@ dependencies = [ [[package]] name = "fido2luks" -version = "0.2.8" +version = "0.2.9" dependencies = [ "ctap_hmac", "failure", diff --git a/Cargo.toml b/Cargo.toml index 5f9bf3b..765ccce 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fido2luks" -version = "0.2.8" +version = "0.2.9" authors = ["shimunn "] edition = "2018" diff --git a/src/luks.rs b/src/luks.rs index a5e04ac..c38359c 100644 --- a/src/luks.rs +++ b/src/luks.rs @@ -235,11 +235,15 @@ pub fn replace_key>( if let Some(id) = credential_id { if check_luks2(&mut device).is_ok() { let token = find_token(&mut device, slot)?.map(|(t, _)| t); + let json = serde_json::to_value(&Fido2LuksToken::new(id, slot)).unwrap(); if let Some(token) = token { - device.token_handle().json_set(TokenInput::ReplaceToken( - token, - &serde_json::to_value(&Fido2LuksToken::new(id, slot)).unwrap(), - ))?; + device + .token_handle() + .json_set(TokenInput::ReplaceToken(token, &json))?; + } else { + device + .token_handle() + .json_set(TokenInput::AddToken(&json))?; } } }