From 6c8a67c520748ead291931c5922323ac01463642 Mon Sep 17 00:00:00 2001 From: hdbg Date: Mon, 16 Feb 2026 20:38:02 +0100 Subject: [PATCH] feat(server::key_holder): ability to remotely get current state --- server/Cargo.lock | 44 ------------------- server/crates/arbiter-server/Cargo.toml | 1 - .../arbiter-server/src/actors/keyholder.rs | 11 ++++- 3 files changed, 9 insertions(+), 47 deletions(-) diff --git a/server/Cargo.lock b/server/Cargo.lock index ccdb47e..c3a2050 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -95,7 +95,6 @@ dependencies = [ "rustls", "secrecy", "smlang", - "statig", "strum", "test-log", "thiserror", @@ -1726,28 +1725,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.115", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -2231,27 +2208,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "statig" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c04b4a9f2d66294d63bdd8df834caad9f8e181997c3cf766b6b4f6d12d4fbc" -dependencies = [ - "statig_macro", -] - -[[package]] -name = "statig_macro" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8090ca395ee30c4b38fee68cf4ddf0bcc5f01aa83364cd4c3ec737a1596dab4d" -dependencies = [ - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.115", -] - [[package]] name = "string_morph" version = "0.1.0" diff --git a/server/crates/arbiter-server/Cargo.toml b/server/crates/arbiter-server/Cargo.toml index 758914b..538c33a 100644 --- a/server/crates/arbiter-server/Cargo.toml +++ b/server/crates/arbiter-server/Cargo.toml @@ -41,7 +41,6 @@ zeroize = { version = "1.8.2", features = ["std", "simd"] } kameo.workspace = true x25519-dalek = { version = "2.0.1", features = ["getrandom"] } chacha20poly1305 = { version = "0.10.1", features = ["std"] } -statig = { version = "0.4.1", features = ["async"] } argon2 = { version = "0.5.3", features = ["zeroize"] } restructed = "0.2.2" strum = { version = "0.27.2", features = ["derive"] } diff --git a/server/crates/arbiter-server/src/actors/keyholder.rs b/server/crates/arbiter-server/src/actors/keyholder.rs index eeded0d..9207271 100644 --- a/server/crates/arbiter-server/src/actors/keyholder.rs +++ b/server/crates/arbiter-server/src/actors/keyholder.rs @@ -3,8 +3,9 @@ use diesel::{ dsl::{insert_into, update}, }; use diesel_async::{AsyncConnection, RunQueryDsl}; -use kameo::{Actor, messages}; +use kameo::{Actor, Reply, messages}; use memsafe::MemSafe; +use strum::{EnumDiscriminants, IntoDiscriminant}; use tracing::{error, info}; use crate::{ @@ -18,7 +19,8 @@ use crate::{ pub mod v1; -#[derive(Default)] +#[derive(Default, EnumDiscriminants)] +#[strum_discriminants(derive(Reply), vis(pub))] enum State { #[default] Unbootstrapped, @@ -319,6 +321,11 @@ impl KeyHolder { Ok(aead_id) } + + #[message] + pub fn get_state(&self) -> StateDiscriminants { + self.state.discriminant() + } } #[cfg(test)]