From fff5b1831041a5596c21069b2a4f7ae0d32387a5 Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Tue, 25 Oct 2022 09:54:03 +0200 Subject: [PATCH] opgpcard: adjust handling of card_service_data --- tools/src/bin/opgpcard/main.rs | 5 ++++- tools/src/bin/opgpcard/output/info.rs | 11 +++++++---- tools/subplot/opgpcard.md | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/tools/src/bin/opgpcard/main.rs b/tools/src/bin/opgpcard/main.rs index 08006dd..c618cbf 100644 --- a/tools/src/bin/opgpcard/main.rs +++ b/tools/src/bin/opgpcard/main.rs @@ -852,7 +852,10 @@ fn print_info( } } 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()? { diff --git a/tools/src/bin/opgpcard/output/info.rs b/tools/src/bin/opgpcard/output/info.rs index 57f2b10..5c65b36 100644 --- a/tools/src/bin/opgpcard/output/info.rs +++ b/tools/src/bin/opgpcard/output/info.rs @@ -14,7 +14,7 @@ pub struct Info { manufacturer_id: String, manufacturer_name: String, card_capabilities: Vec, - card_service_data: String, + card_service_data: Vec, extended_length_info: Vec, extended_capabilities: Vec, algorithms: Option>, @@ -47,7 +47,7 @@ impl Info { } 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) { @@ -91,7 +91,10 @@ impl Info { } 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'); } @@ -177,7 +180,7 @@ struct InfoV0 { manufacturer_id: String, manufacturer_name: String, card_capabilities: Vec, - card_service_data: String, + card_service_data: Vec, extended_length_info: Vec, extended_capabilities: Vec, algorithms: Option>, diff --git a/tools/subplot/opgpcard.md b/tools/subplot/opgpcard.md index 9ed378b..de1693f 100644 --- a/tools/subplot/opgpcard.md +++ b/tools/subplot/opgpcard.md @@ -108,7 +108,7 @@ then stdout, as JSON, matches embedded file info.json "application_id": "D276000124 01 01 0200 AFAF 00001234 0000", "manufacturer_id": "AFAF", "manufacturer_name": "Unknown", - "card_service_data": "", + "card_service_data": [], "ident": "AFAF:00001234" } ~~~