From c1f6a7c082b5863503c7c5e67733c6a9a55bf173 Mon Sep 17 00:00:00 2001 From: timedout Date: Wed, 7 Oct 2026 11:01:23 +0100 Subject: [PATCH] fix: Don't do weird wire signing for server keys route --- src/api/router.rs | 2 +- src/api/server/key.rs | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/api/router.rs b/src/api/router.rs index c25a4577e..fdd08ab00 100644 --- a/src/api/router.rs +++ b/src/api/router.rs @@ -206,7 +206,7 @@ pub fn build(router: Router, state: State) -> Router { if config.allow_federation { router = router .ruma_route(&server::get_server_version_route) - .route("/_matrix/key/v2/server", get(server::get_server_keys_route)) + .ruma_route(&server::get_server_keys_route) .ruma_route(&server::get_remote_server_keys_batch_route) .ruma_route(&server::get_remote_server_keys_route) .ruma_route(&server::get_public_rooms_route) diff --git a/src/api/server/key.rs b/src/api/server/key.rs index 2d994673d..9fb06edcf 100644 --- a/src/api/server/key.rs +++ b/src/api/server/key.rs @@ -5,7 +5,7 @@ use std::{ time::Instant, }; -use axum::{Json, extract::State, response::IntoResponse}; +use axum::extract::State; use conduwuit::{ Err, Result, debug, debug_info, error, utils::{ReadyExt, stream::BroadbandExt, to_canonical_object}, @@ -16,7 +16,7 @@ use ruma::{ MilliSecondsSinceUnixEpoch, OwnedServerName, OwnedServerSigningKeyId, ServerName, api::federation::discovery::{ ServerSigningKeys, get_remote_server_keys, get_remote_server_keys_batch, - get_remote_server_keys_batch::v2::QueryCriteria, + get_remote_server_keys_batch::v2::QueryCriteria, get_server_keys, }, serde::Raw, uint, @@ -31,8 +31,13 @@ use crate::router::Ruma; /// Gets the public signing keys of this server. pub(crate) async fn get_server_keys_route( State(services): State, -) -> Result { - Ok(Json(services.server_keys.build_server_keys_response().await?)) + _body: Ruma, +) -> Result { + services + .server_keys + .build_server_keys_response() + .await + .map(get_server_keys::v2::Response::new) } const MAX_KEYS_PER_QUERY: usize = 16384;