openpgp-card: in private_use_do accessors, don't panic, but return error for illegal num.
Fix: set_private_use_do() doesn't return data.
This commit is contained in:
parent
8ee389ca7a
commit
724be38e4f
1 changed files with 14 additions and 6 deletions
|
@ -634,7 +634,12 @@ impl<'a> Transaction<'a> {
|
||||||
pub fn private_use_do(&mut self, num: u8) -> Result<Vec<u8>, Error> {
|
pub fn private_use_do(&mut self, num: u8) -> Result<Vec<u8>, Error> {
|
||||||
log::info!("OpenPgpTransaction: private_use_do");
|
log::info!("OpenPgpTransaction: private_use_do");
|
||||||
|
|
||||||
assert!((1..=4).contains(&num));
|
if !(1..=4).contains(&num) {
|
||||||
|
return Err(Error::UnsupportedFeature(format!(
|
||||||
|
"Illegal Private Use DO num '{}'",
|
||||||
|
num,
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
let cmd = commands::private_use_do(num);
|
let cmd = commands::private_use_do(num);
|
||||||
self.send_command(cmd, true)?.try_into()
|
self.send_command(cmd, true)?.try_into()
|
||||||
|
@ -1049,15 +1054,18 @@ impl<'a> Transaction<'a> {
|
||||||
/// Access condition:
|
/// Access condition:
|
||||||
/// - 1/3 need PW1 (82)
|
/// - 1/3 need PW1 (82)
|
||||||
/// - 2/4 need PW3
|
/// - 2/4 need PW3
|
||||||
pub fn set_private_use_do(&mut self, num: u8, data: Vec<u8>) -> Result<Vec<u8>, Error> {
|
pub fn set_private_use_do(&mut self, num: u8, data: Vec<u8>) -> Result<(), Error> {
|
||||||
log::info!("OpenPgpTransaction: set_private_use_do");
|
log::info!("OpenPgpTransaction: set_private_use_do");
|
||||||
|
|
||||||
assert!((1..=4).contains(&num));
|
if !(1..=4).contains(&num) {
|
||||||
|
return Err(Error::UnsupportedFeature(format!(
|
||||||
|
"Illegal Private Use DO num '{}'",
|
||||||
|
num,
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
let cmd = commands::put_private_use_do(num, data);
|
let cmd = commands::put_private_use_do(num, data);
|
||||||
let resp = self.send_command(cmd, true)?;
|
self.send_command(cmd, true)?.try_into()
|
||||||
|
|
||||||
Ok(resp.data()?.to_vec())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_login(&mut self, login: &[u8]) -> Result<(), Error> {
|
pub fn set_login(&mut self, login: &[u8]) -> Result<(), Error> {
|
||||||
|
|
Loading…
Reference in a new issue