This commit is contained in:
Alex 2022-05-20 21:02:53 +02:00
parent a6e33aafea
commit 4a228a3ce7
Signed by: lx
GPG key ID: 0E496D15096376BE

View file

@ -182,25 +182,17 @@ impl CryptoKeys {
let password_sortkey = format!("password:{}", hex::encode(&ident)); let password_sortkey = format!("password:{}", hex::encode(&ident));
let password_blob = { let password_blob = {
let mut params = k2v let mut val = match k2v.read_item("keys", &password_sortkey).await {
.read_batch(&[k2v_read_single_key("keys", &password_sortkey)]) Err(k2v_client::Error::NotFound) => {
.await bail!("given password does not exist in storage")
.context("ReadBatch to read password")?;
if params.len() != 1 {
bail!(
"Invalid response from k2v storage: {:?} (expected one item)",
params
);
} }
if params[0].items.len() != 1 { x => x?,
bail!("given password does not exist in storage."); };
if val.value.len() != 1 {
bail!("multiple values for password in storage");
} }
let vals = &mut params[0].items.iter_mut().next().unwrap().1.value; match val.value.pop().unwrap() {
if vals.len() != 1 { K2vValue::Value(v) => v,
bail!("Multiple values for password in storage");
}
match &mut vals[0] {
K2vValue::Value(v) => std::mem::take(v),
K2vValue::Tombstone => bail!("password is a tombstone"), K2vValue::Tombstone => bail!("password is a tombstone"),
} }
}; };