From 5a3346f9738ef9de61023752d56da5065c740683 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 30 Jun 2022 14:16:26 -0700 Subject: [PATCH] ircd::m::request: Throw more descriptive error for node key failure. --- matrix/request.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/matrix/request.cc b/matrix/request.cc index 0f132bfe6..965269ac1 100644 --- a/matrix/request.cc +++ b/matrix/request.cc @@ -261,13 +261,23 @@ const origin }; - bool verified{false}; - node_keys.get(key, [this, &verified, &sig] + bool attempted{false}, verified{false}; + node_keys.get(key, [this, &attempted, &verified, &sig] (const ed25519::pk &pk) { + attempted = true; verified = verify(pk, sig); }); + if(!verified && !attempted) + throw m::error + { + http::UNAUTHORIZED, "M_UNVERIFIABLE_SIGNATURE", + "The X-Matrix Authorization key '%s' for '%s' could not be obtained.", + key, + origin, + }; + return verified; }