mirror of
https://github.com/pcvolkmer/cert-tools.git
synced 2025-04-19 17:06:49 +00:00
feat: add copy to clipboard for cert fingerprints
This commit is contained in:
parent
b0ce06515d
commit
944e085a57
113
ui/src/main.rs
113
ui/src/main.rs
@ -181,7 +181,7 @@ impl Ui {
|
|||||||
};
|
};
|
||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
Message::Copy => clipboard::write::<Message>(self.output.text()),
|
Message::CopyValue(value) => clipboard::write::<Message>(value),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +297,7 @@ impl Ui {
|
|||||||
button("Copy to Clipboard").style(button::secondary)
|
button("Copy to Clipboard").style(button::secondary)
|
||||||
} else {
|
} else {
|
||||||
button("Copy to Clipboard")
|
button("Copy to Clipboard")
|
||||||
.on_press(Message::Copy)
|
.on_press(Message::CopyValue(self.output.text().trim().to_string()))
|
||||||
.style(button::secondary)
|
.style(button::secondary)
|
||||||
};
|
};
|
||||||
let buttons = if self.cert_file.is_some() {
|
let buttons = if self.cert_file.is_some() {
|
||||||
@ -342,52 +342,71 @@ impl Ui {
|
|||||||
if let Some(chain) = &self.chain {
|
if let Some(chain) = &self.chain {
|
||||||
for cert in chain.certs() {
|
for cert in chain.certs() {
|
||||||
result = result.push(
|
result = result.push(
|
||||||
Container::new(column![
|
Container::new(
|
||||||
text(cert.name().to_string()).size(18),
|
column![
|
||||||
horizontal_rule(1),
|
text(cert.name().to_string()).size(18),
|
||||||
row![text("Issuer: ").width(200), text(cert.issuer().to_string())],
|
horizontal_rule(1),
|
||||||
row![
|
row![text("Issuer: ").width(200), text(cert.issuer().to_string())],
|
||||||
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![
|
row![
|
||||||
text("DNS-Names: ").width(200),
|
text("Gültigkeit: ").width(200),
|
||||||
text(cert.dns_names().join(", "))
|
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()),
|
||||||
|
horizontal_space(),
|
||||||
|
button("Copy to Clipboard")
|
||||||
|
.style(button::secondary)
|
||||||
|
.padding(1)
|
||||||
|
.on_press(Message::CopyValue(
|
||||||
|
cert.fingerprint().sha1.to_string()
|
||||||
|
)),
|
||||||
]
|
]
|
||||||
},
|
.align_y(alignment::Vertical::Center),
|
||||||
])
|
row![
|
||||||
|
text("SHA-256-Fingerprint: ").width(200),
|
||||||
|
text(cert.fingerprint().sha256.to_string()),
|
||||||
|
horizontal_space(),
|
||||||
|
button("Copy to Clipboard")
|
||||||
|
.style(button::secondary)
|
||||||
|
.padding(1)
|
||||||
|
.on_press(Message::CopyValue(
|
||||||
|
cert.fingerprint().sha1.to_string()
|
||||||
|
)),
|
||||||
|
]
|
||||||
|
.align_y(alignment::Vertical::Center),
|
||||||
|
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(", "))
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
.spacing(2),
|
||||||
|
)
|
||||||
.padding(8)
|
.padding(8)
|
||||||
.style(|_| container::Style {
|
.style(|_| container::Style {
|
||||||
background: Some(Background::Color(Color::WHITE)),
|
background: Some(Background::Color(Color::WHITE)),
|
||||||
@ -721,7 +740,7 @@ enum Message {
|
|||||||
SetKeyFile(Result<PathBuf, Error>),
|
SetKeyFile(Result<PathBuf, Error>),
|
||||||
Print,
|
Print,
|
||||||
Merge,
|
Merge,
|
||||||
Copy,
|
CopyValue(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user