opgpcard: adjust handling of card_service_data
This commit is contained in:
parent
44c73a154b
commit
fff5b18310
3 changed files with 12 additions and 6 deletions
|
@ -852,7 +852,10 @@ fn print_info(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(csd) = open.historical_bytes()?.card_service_data() {
|
if let Some(csd) = open.historical_bytes()?.card_service_data() {
|
||||||
output.card_service_data(csd.to_string());
|
for line in csd.to_string().lines() {
|
||||||
|
let line = line.strip_prefix("- ").unwrap_or(line);
|
||||||
|
output.card_service_data(line.to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(eli) = open.extended_length_information()? {
|
if let Some(eli) = open.extended_length_information()? {
|
||||||
|
|
|
@ -14,7 +14,7 @@ pub struct Info {
|
||||||
manufacturer_id: String,
|
manufacturer_id: String,
|
||||||
manufacturer_name: String,
|
manufacturer_name: String,
|
||||||
card_capabilities: Vec<String>,
|
card_capabilities: Vec<String>,
|
||||||
card_service_data: String,
|
card_service_data: Vec<String>,
|
||||||
extended_length_info: Vec<String>,
|
extended_length_info: Vec<String>,
|
||||||
extended_capabilities: Vec<String>,
|
extended_capabilities: Vec<String>,
|
||||||
algorithms: Option<Vec<String>>,
|
algorithms: Option<Vec<String>>,
|
||||||
|
@ -47,7 +47,7 @@ impl Info {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn card_service_data(&mut self, data: String) {
|
pub fn card_service_data(&mut self, data: String) {
|
||||||
self.card_service_data = data;
|
self.card_service_data.push(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn extended_length_info(&mut self, info: String) {
|
pub fn extended_length_info(&mut self, info: String) {
|
||||||
|
@ -91,7 +91,10 @@ impl Info {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !self.card_service_data.is_empty() {
|
if !self.card_service_data.is_empty() {
|
||||||
s.push_str(&format!("Card service data: {}\n", self.card_service_data));
|
s.push_str("Card service data:\n");
|
||||||
|
for c in self.card_service_data.iter() {
|
||||||
|
s.push_str(&format!("- {}\n", c));
|
||||||
|
}
|
||||||
s.push('\n');
|
s.push('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +180,7 @@ struct InfoV0 {
|
||||||
manufacturer_id: String,
|
manufacturer_id: String,
|
||||||
manufacturer_name: String,
|
manufacturer_name: String,
|
||||||
card_capabilities: Vec<String>,
|
card_capabilities: Vec<String>,
|
||||||
card_service_data: String,
|
card_service_data: Vec<String>,
|
||||||
extended_length_info: Vec<String>,
|
extended_length_info: Vec<String>,
|
||||||
extended_capabilities: Vec<String>,
|
extended_capabilities: Vec<String>,
|
||||||
algorithms: Option<Vec<String>>,
|
algorithms: Option<Vec<String>>,
|
||||||
|
|
|
@ -108,7 +108,7 @@ then stdout, as JSON, matches embedded file info.json
|
||||||
"application_id": "D276000124 01 01 0200 AFAF 00001234 0000",
|
"application_id": "D276000124 01 01 0200 AFAF 00001234 0000",
|
||||||
"manufacturer_id": "AFAF",
|
"manufacturer_id": "AFAF",
|
||||||
"manufacturer_name": "Unknown",
|
"manufacturer_name": "Unknown",
|
||||||
"card_service_data": "",
|
"card_service_data": [],
|
||||||
"ident": "AFAF:00001234"
|
"ident": "AFAF:00001234"
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
Loading…
Reference in a new issue