Adjust visibility and add accessors to CardCaps.

This commit is contained in:
Heiko Schaefer 2021-08-21 17:45:11 +02:00
parent a8c53056f0
commit f28c9c2204
2 changed files with 12 additions and 18 deletions

View file

@ -84,31 +84,25 @@ pub type CardClientBox = Box<dyn CardClient + Send + Sync>;
#[derive(Clone, Copy, Debug)] #[derive(Clone, Copy, Debug)]
pub struct CardCaps { pub struct CardCaps {
/// Extended Lc and Le fields /// Extended Lc and Le fields
pub ext_support: bool, ext_support: bool,
/// Command chaining /// Command chaining
pub chaining_support: bool, chaining_support: bool,
/// Maximum number of bytes in a command APDU /// Maximum number of bytes in a command APDU
pub max_cmd_bytes: u16, max_cmd_bytes: u16,
/// Maximum number of bytes in a response APDU /// Maximum number of bytes in a response APDU
pub max_rsp_bytes: u16, max_rsp_bytes: u16,
} }
impl CardCaps { impl CardCaps {
pub fn new( pub fn get_ext_support(&self) -> bool {
ext_support: bool, self.ext_support
chaining_support: bool,
max_cmd_bytes: u16,
max_rsp_bytes: u16,
) -> CardCaps {
Self {
ext_support,
chaining_support,
max_cmd_bytes,
max_rsp_bytes,
} }
pub fn get_max_rsp_bytes(&self) -> u16 {
self.max_rsp_bytes
} }
} }

View file

@ -197,9 +197,9 @@ impl CardClient for ScdClient {
let hex = hex::encode(cmd); let hex = hex::encode(cmd);
let ext = if self.card_caps.is_some() let ext = if self.card_caps.is_some()
&& self.card_caps.unwrap().ext_support && self.card_caps.unwrap().get_ext_support()
{ {
format!("--exlen={} ", self.card_caps.unwrap().max_rsp_bytes) format!("--exlen={} ", self.card_caps.unwrap().get_max_rsp_bytes())
} else { } else {
"".to_string() "".to_string()
}; };