Skip to main content

Mountain/Binary/Build/TlsCommands/
tls_get_server_cert_info.rs

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