From 13146f474b8e95e5e317a0311a352b19f9950b03 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Mon, 6 Jan 2025 11:41:38 +0100 Subject: [PATCH] feat: show information about the loaded chain --- README.md | 5 +- ui-image.jpeg | Bin 0 -> 112614 bytes ui/Cargo.toml | 2 +- ui/src/main.rs | 259 ++++++++++++++++++++++++++++++++++++------------- 4 files changed, 198 insertions(+), 68 deletions(-) create mode 100644 ui-image.jpeg diff --git a/README.md b/README.md index 36b4878..eaddb30 100644 --- a/README.md +++ b/README.md @@ -60,4 +60,7 @@ cert-tools merge cert.pem ca.pem > chain.pem ## GUI -In addition to the console-based application, a simple graphical user interface is available in (sub-)package `ui`. \ No newline at end of file +In addition to the console-based application, a simple [iced](https://github.com/iced-rs/iced)-based graphical user +interface is available in (sub-)package `ui`. + +![](ui-image.jpeg) \ No newline at end of file diff --git a/ui-image.jpeg b/ui-image.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d2cefb3b9bd64b4f397bfc64ae795ac2753ce994 GIT binary patch literal 112614 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 iced::Result { application(Ui::title, Ui::update, Ui::view) @@ -23,7 +22,7 @@ fn main() -> iced::Result { enum UiMode { CertList, - Output + Output, } struct Ui { @@ -44,7 +43,7 @@ impl Ui { cert_file: None, ca_file: None, key_file: None, - mode: UiMode::Output, + mode: UiMode::CertList, chain: None, output: Content::default(), status: String::new(), @@ -58,27 +57,34 @@ impl Ui { } fn update(&mut self, message: Message) -> Task { - self.mode = UiMode::Output; + self.mode = UiMode::CertList; match message { Message::PickCertFile => Task::perform(pick_file(), Message::SetCertFile), Message::PickCaFile => Task::perform(pick_file(), Message::SetCaFile), Message::PickKeyFile => Task::perform(pick_file(), Message::SetKeyFile), Message::ClearCertFile => { self.cert_file = None; - self.chain = None; - self.output = Content::default(); - Task::none() + self.chain = match self.load_chain() { + Ok(chain) => Some(chain), + _ => None, + }; + self.update(Message::Print) } Message::ClearCaFile => { self.ca_file = None; - self.chain = None; - self.output = Content::default(); - Task::none() + self.chain = match self.load_chain() { + Ok(chain) => Some(chain), + _ => None, + }; + self.update(Message::Print) } Message::ClearKeyFile => { self.key_file = None; - self.output = Content::default(); - Task::none() + self.chain = match self.load_chain() { + Ok(chain) => Some(chain), + _ => None, + }; + self.update(Message::Print) } Message::SetCertFile(file) => { match file { @@ -86,14 +92,14 @@ impl Ui { self.cert_file = Some(file); self.chain = match self.load_chain() { Ok(chain) => Some(chain), - _ => None + _ => None, }; self.output = Content::default(); self.mode = UiMode::CertList; } _ => self.cert_file = None, }; - Task::none() + self.update(Message::Print) } Message::SetCaFile(file) => { match file { @@ -101,25 +107,23 @@ impl Ui { self.ca_file = Some(file); self.chain = match self.load_chain() { Ok(chain) => Some(chain), - _ => None + _ => None, }; self.output = Content::default(); - self.mode = UiMode::CertList; } _ => self.ca_file = None, }; - Task::none() + self.update(Message::Print) } Message::SetKeyFile(file) => { match file { Ok(file) => { self.key_file = Some(file); self.output = Content::default(); - self.mode = UiMode::CertList; } _ => self.key_file = None, }; - Task::none() + self.update(Message::Print) } Message::Print => { match self.print_output() { @@ -140,6 +144,7 @@ impl Ui { Ok(output) => { self.output = Content::with_text(output.as_str()); self.status = String::new(); + self.mode = UiMode::Output; } Err(err) => { self.output = Content::default(); @@ -148,7 +153,7 @@ impl Ui { }; Task::none() } - Message::Copy => clipboard::write::(self.output.text()) + Message::Copy => clipboard::write::(self.output.text()), } } @@ -285,53 +290,174 @@ impl Ui { let certs = { let mut result = column![]; - + if let Some(chain) = &self.chain { for cert in chain.certs() { - result = - result.push( - Container::new(column![ - text(cert.name().to_string()).size(18), - row![ - text("Name: ").width(200), - text(cert.name().to_string()) - ], - row![ - text("Issuer: ").width(200), - text(cert.issuer().to_string()) - ], - row![ - text("SHA-1-Fingerprint: ").width(200), - text(cert.fingerprint().sha1.to_string()) - ], - row![ - text("SHA-256-Fingerprint: ").width(200), - text(cert.fingerprint().sha256.to_string()) - ], - row![ - text("Subject-Key-Id: ").width(200), - text(cert.subject_key_id().to_string()) - ], - row![ - text("Authority_Key-Id: ").width(200), - text(cert.authority_key_id().to_string()) - ], - ]) - .padding(4) - .style(|t| container::Style { - border: Border::default().width(1), - background: Some(Background::Color(Color::parse("#eee").unwrap())), - ..container::Style::default() - }) - .width(Length::Fill), - ) + result = result.push( + Container::new(column![ + text(cert.name().to_string()).size(18), + horizontal_rule(1), + row![text("Issuer: ").width(200), text(cert.issuer().to_string())], + row![ + text("Gültigkeit: ").width(200), + text("Gültig von "), + if cert.is_valid_not_before(&SystemTime::now()) { + text(cert.not_before().to_string()) + } else { + text(cert.not_before().to_string()) + .color(Color::parse("#aa0000").unwrap()) + }, + text(" bis "), + if cert.is_valid_not_after(&SystemTime::now()) { + text(cert.not_after().to_string()) + } else { + text(cert.not_after().to_string()) + .color(Color::parse("#aa0000").unwrap()) + } + ], + row![ + text("SHA-1-Fingerprint: ").width(200), + text(cert.fingerprint().sha1.to_string()) + ], + row![ + text("SHA-256-Fingerprint: ").width(200), + text(cert.fingerprint().sha256.to_string()) + ], + row![ + text("Subject-Key-Id: ").width(200), + text(cert.subject_key_id().to_string()) + ], + row![ + text("Authority_Key-Id: ").width(200), + text(cert.authority_key_id().to_string()) + ], + if cert.dns_names().is_empty() { + row![] + } else { + row![ + text("DNS-Names: ").width(200), + text(cert.dns_names().join(", ")) + ] + }, + ]) + .padding(8) + .style(|_| container::Style { + background: Some(Background::Color(Color::WHITE)), + ..container::Style::default() + }) + .width(Length::Fill), + ) } }; - - let content = result.spacing(2); + + let content = + Container::new(result.spacing(4)) + .padding(4) + .style(|_| container::Style { + background: Some(Background::Color(Color::parse("#eeeeee").unwrap())), + ..container::Style::default() + }); Scrollable::new(content).height(Length::Fill) }; + let chain_info = { + let mut result = column![]; + + result = result.push(if let Some(chain) = &self.chain { + if chain.has_missing_tail() { + column![ + Container::new(text("Last Certificate points to another one that should be contained in chain.")).style(|_| container::Style { + background: Some(Background::Color(Color::parse("#eeaa00").unwrap())), + text_color: Some(Color::WHITE), + ..container::Style::default() + }).padding(2).width(Length::Fill), + Container::new(text("Self signed (CA-) Certificate? It might be required to import a self signed Root-CA manually for applications to use it.")) + .padding(2) + ] + } else { + column![] + } + } else { + column![] + }); + + result = result.push(if let Some(chain) = &self.chain { + if chain.is_valid() { + column![Container::new(text("Chain is valid")) + .style(|_| container::Style { + background: Some(Background::Color(Color::parse("#00aa00").unwrap())), + text_color: Some(Color::WHITE), + ..container::Style::default() + }) + .padding(2) + .width(Length::Fill)] + } else if !chain.certs().is_empty() { + column![Container::new(text( + "Chain or some of its parts is not valid (anymore)" + )) + .style(|_| container::Style { + background: Some(Background::Color(Color::parse("#aa0000").unwrap())), + text_color: Some(Color::WHITE), + ..container::Style::default() + }) + .padding(2) + .width(Length::Fill)] + } else { + column![] + } + } else { + column![] + }); + + result = + result.push(if let Some(key) = &self.key_file { + match PrivateKey::read(Path::new(&key)) { + Ok(private_key) => { + if let Some(chain) = &self.chain { + if let Some(first) = chain.certs().first() { + if first.public_key_matches(private_key) { + column![Container::new(text( + "Private Key matches first Cert Public Key" + )) + .style(|_| container::Style { + background: Some(Background::Color( + Color::parse("#00aa00").unwrap() + )), + text_color: Some(Color::WHITE), + ..container::Style::default() + }) + .padding(2) + .width(Length::Fill)] + } else { + column![Container::new(text( + "Private Key does not match the first Cert Public Key" + )) + .style(|_| container::Style { + background: Some(Background::Color( + Color::parse("#aa0000").unwrap() + )), + text_color: Some(Color::WHITE), + ..container::Style::default() + }) + .padding(2) + .width(Length::Fill)] + } + } else { + column![] + } + } else { + column![] + } + } + _ => column![], + } + } else { + column![] + }); + + result + }; + let indicator = { let content = match self.indicator_state() { IndicatorState::Unknown => ("?", "#aaaaaa", "#ffffff"), @@ -361,9 +487,10 @@ impl Ui { .spacing(96), horizontal_rule(1), buttons, + horizontal_rule(1), match self.mode { - UiMode::CertList => certs, - UiMode::Output => output + UiMode::CertList => column![certs, chain_info], + UiMode::Output => column![output], }, horizontal_rule(1), text(&self.status) @@ -497,7 +624,7 @@ Authority-Key-Id: {} } Ok(result) } - + fn load_chain(&self) -> Result { if let Some(cert_file) = &self.cert_file { let chain = Chain::read(cert_file); @@ -582,7 +709,7 @@ enum Message { SetKeyFile(Result), Print, Merge, - Copy + Copy, } #[derive(Debug, Clone)]