opgpcard: properly error out of sign/decrypt, if the relevant key slot is empty
This commit is contained in:
parent
65caf07cc0
commit
4674b95557
1 changed files with 8 additions and 0 deletions
|
@ -979,6 +979,10 @@ fn decrypt(
|
||||||
let mut card = Card::new(backend);
|
let mut card = Card::new(backend);
|
||||||
let mut open = card.transaction()?;
|
let mut open = card.transaction()?;
|
||||||
|
|
||||||
|
if open.fingerprints()?.decryption().is_none() {
|
||||||
|
return Err(anyhow!("Can't decrypt: this card has no key in the decryption slot.").into());
|
||||||
|
}
|
||||||
|
|
||||||
let user_pin = util::get_pin(&mut open, pin_file, ENTER_USER_PIN);
|
let user_pin = util::get_pin(&mut open, pin_file, ENTER_USER_PIN);
|
||||||
|
|
||||||
let mut user = util::verify_to_user(&mut open, user_pin.as_deref())?;
|
let mut user = util::verify_to_user(&mut open, user_pin.as_deref())?;
|
||||||
|
@ -1003,6 +1007,10 @@ fn sign_detached(
|
||||||
let mut card = Card::new(backend);
|
let mut card = Card::new(backend);
|
||||||
let mut open = card.transaction()?;
|
let mut open = card.transaction()?;
|
||||||
|
|
||||||
|
if open.fingerprints()?.signature().is_none() {
|
||||||
|
return Err(anyhow!("Can't sign: this card has no key in the signing slot.").into());
|
||||||
|
}
|
||||||
|
|
||||||
let user_pin = util::get_pin(&mut open, pin_file, ENTER_USER_PIN);
|
let user_pin = util::get_pin(&mut open, pin_file, ENTER_USER_PIN);
|
||||||
|
|
||||||
let mut sign = util::verify_to_sign(&mut open, user_pin.as_deref())?;
|
let mut sign = util::verify_to_sign(&mut open, user_pin.as_deref())?;
|
||||||
|
|
Loading…
Reference in a new issue