From 0ffa9167da13ecaa398cd8738f0abc4c65ca90cf Mon Sep 17 00:00:00 2001 From: J H <2364004+Blu-J@users.noreply.github.com> Date: Mon, 2 Oct 2023 15:15:24 -0600 Subject: [PATCH] feat: Add in the ssl_size (#2432) * feat: Add in the ssl_size * chore: Changes for the naming and other things. --- backend/src/net/mod.rs | 2 +- backend/src/net/ssl.rs | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/backend/src/net/mod.rs b/backend/src/net/mod.rs index 02788f018..0b98c439a 100644 --- a/backend/src/net/mod.rs +++ b/backend/src/net/mod.rs @@ -22,7 +22,7 @@ pub mod wifi; pub const PACKAGE_CERT_PATH: &str = "/var/lib/embassy/ssl"; -#[command(subcommands(tor::tor, dhcp::dhcp))] +#[command(subcommands(tor::tor, dhcp::dhcp, ssl::ssl))] pub fn net() -> Result<(), Error> { Ok(()) } diff --git a/backend/src/net/ssl.rs b/backend/src/net/ssl.rs index 13179da1d..b3cf0ec81 100644 --- a/backend/src/net/ssl.rs +++ b/backend/src/net/ssl.rs @@ -4,6 +4,7 @@ use std::net::IpAddr; use std::path::Path; use std::time::{SystemTime, UNIX_EPOCH}; +use chrono::format; use futures::FutureExt; use openssl::asn1::{Asn1Integer, Asn1Time}; use openssl::bn::{BigNum, MsbOption}; @@ -13,13 +14,18 @@ use openssl::nid::Nid; use openssl::pkey::{PKey, Private}; use openssl::x509::{X509Builder, X509Extension, X509NameBuilder, X509}; use openssl::*; +use rpc_toolkit::command; use tokio::sync::{Mutex, RwLock}; use tracing::instrument; -use crate::account::AccountInfo; use crate::hostname::Hostname; use crate::net::dhcp::ips; use crate::net::keys::{Key, KeyInfo}; +use crate::prelude::*; +use crate::{ + account::AccountInfo, + context::{self, RpcContext}, +}; use crate::{Error, ErrorKind, ResultExt}; static CERTIFICATE_VERSION: i32 = 2; // X509 version 3 is actually encoded as '2' in the cert because fuck you. @@ -414,3 +420,16 @@ pub fn make_leaf_cert( let cert = builder.build(); Ok(cert) } + +#[command(subcommands(size))] +pub async fn ssl() -> Result<(), Error> { + Ok(()) +} + +#[command] +pub async fn size(#[context] ctx: RpcContext) -> Result { + Ok(format!( + "Cert Catch size: {}", + ctx.net_controller.ssl.cert_cache.read().await.len() + )) +}