Skip to main content

tuwunel_admin/debug/
get_signing_keys.rs

1use 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(&notary, &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}