Skip to main content

Mountain/Binary/Build/TlsCommands/
tls_get_server_cert_info.rs

1
2//! `tls_get_server_cert_info` Tauri command - certificate info
3//! lookup for one hostname (returns `None` when no cached cert).
4
5use std::sync::{Arc, Mutex};
6
7use tauri::{AppHandle, Manager};
8
9use crate::{
10	Binary::Build::CertificateManager::{CertificateInfo, CertificateManager},
11	dev_log,
12};
13
14#[tauri::command]
15pub async fn tls_get_server_cert_info(
16	app_handle:AppHandle,
17
18	hostname:String,
19) -> Result<Option<CertificateInfo>, String> {
20	dev_log!("security", "getting server cert info for {}", hostname);
21
22	let state = app_handle
23		.try_state::<Arc<Mutex<CertificateManager>>>()
24		.ok_or("Certificate manager not found")?;
25
26	let cert_manager = state.clone();
27
28	let manager = cert_manager.lock().map_err(|e| format!("Failed to acquire lock: {}", e))?;
29
30	Ok(manager.get_server_cert_info(&hostname))
31}