tuwunel_admin/debug/
get_signing_keys.rs1use ruma::OwnedServerName;
2use tuwunel_core::Result;
3
4use crate::admin_command;
5
6#[admin_command]
7pub(super) async fn get_signing_keys(
8 &self,
9 server_name: Option<OwnedServerName>,
10 notary: Option<OwnedServerName>,
11 query: bool,
12) -> Result {
13 let server_name = server_name.unwrap_or_else(|| self.services.server.name.clone());
14
15 if let Some(notary) = notary {
16 let signing_keys = self
17 .services
18 .server_keys
19 .notary_request(¬ary, &server_name)
20 .await?;
21
22 let out = format!("```rs\n{signing_keys:#?}\n```");
23 return self.write_str(&out).await;
24 }
25
26 let signing_keys = if query {
27 self.services
28 .server_keys
29 .server_request(&server_name)
30 .await?
31 } else {
32 self.services
33 .server_keys
34 .signing_keys_for(&server_name)
35 .await?
36 };
37
38 let out = format!("```rs\n{signing_keys:#?}\n```");
39 self.write_str(&out).await
40}