Install CA certificate

This commit is contained in:
KingRainbow44
2022-05-23 00:05:31 -04:00
parent 8ee97d3464
commit 3891bbbe3d
2 changed files with 38 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ use registry::{Hive, Data, Security};
use rustls_pemfile as pemfile; use rustls_pemfile as pemfile;
use tauri::http::Uri; use tauri::http::Uri;
use crate::system_helpers::run_command;
async fn shutdown_signal() { async fn shutdown_signal() {
tokio::signal::ctrl_c().await tokio::signal::ctrl_c().await
@@ -170,5 +171,20 @@ pub(crate) fn generate_ca_files() {
let cert_crt = cert.serialize_pem().unwrap(); let cert_crt = cert.serialize_pem().unwrap();
// TODO: Save certificates. // TODO: Save certificates.
// TODO: Install certificates.
// Install certificate into the system's Root CA store.
install_ca_files();
}
/*
* Attempts to install the certificate authority's certificate into the Root CA store.
*/
pub(crate) fn install_ca_files() {
if cfg!(target_os = "windows") {
run_command("certutil -addstore -f \"ROOT\" ca/certificate.crt".to_string());
} else {
run_command("sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca/certificate.crt".to_string());
}
println!("Installed certificate.");
} }

View File

@@ -1,5 +1,6 @@
use std::thread; use std::thread;
use std::process::Command;
use tauri; use tauri;
use open; use open;
@@ -7,12 +8,31 @@ use open;
pub fn run_program(path: String) { pub fn run_program(path: String) {
// Open the program from the specified path. // Open the program from the specified path.
// Open in new thread to prevent blocking // Open in new thread to prevent blocking.
thread::spawn(move || { thread::spawn(move || {
open::that(&path).unwrap(); open::that(&path).unwrap();
}); });
} }
#[tauri::command]
pub fn run_command(command: String) -> String {
// Run the specified command.
let output = if cfg!(target_os = "windows") {
Command::new("cmd")
.args(["/C", command])
.output()
.expect("failed to execute process")
} else {
Command::new("sh")
.arg("-c")
.arg(command)
.output()
.expect("failed to execute process")
};
output.stdout.to_string()
}
#[tauri::command] #[tauri::command]
pub fn run_jar(path: String, execute_in: String, java_path: String) { pub fn run_jar(path: String, execute_in: String, java_path: String) {
let command = if java_path.is_empty() { let command = if java_path.is_empty() {