Skip to main content

Mountain/Binary/Build/TlsCommands/
tls_get_all_certs.rs

1#![allow(non_snake_case)]
2
3//! `tls_get_all_certs` Tauri command - hostname → cert info
4//! map for the diagnostic panel.
5
6use std::{
7	collections::HashMap,
8	sync::{Arc, Mutex},
9};
10
11use tauri::{AppHandle, Manager};
12
13use crate::{
14	Binary::Build::CertificateManager::{CertificateInfo, CertificateManager},
15	dev_log,
16};
17
18#[tauri::command]
19pub async fn tls_get_all_certs(app_handle:AppHandle) -> Result<HashMap<String, CertificateInfo>, String> {
20	dev_log!("security", "getting all server certificates");
21
22	let state = app_handle
23		.try_state::<Arc<Mutex<CertificateManager>>>()
24		.ok_or("Certificate manager not found")?;
25	let cert_manager = state.clone();
26
27	let manager = cert_manager.lock().map_err(|e| format!("Failed to acquire lock: {}", e))?;
28	Ok(manager.get_all_certs())
29}