From 8247cb32040dc8f482e8ad99f93afd4ba4f32701 Mon Sep 17 00:00:00 2001 From: timedout Date: Tue, 10 Feb 2026 23:27:14 +0000 Subject: [PATCH] federation/client: Add key query and claim endpoints too --- federation/client.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/federation/client.go b/federation/client.go index d350a063..28b11b25 100644 --- a/federation/client.go +++ b/federation/client.go @@ -445,6 +445,16 @@ func (c *Client) GetUserDevices(ctx context.Context, serverName string, userID i return resp, c.MakeRequest(ctx, serverName, true, http.MethodGet, URLPath{"v1", "user", "devices", userID}, nil, &resp) } +// QueryUserKeys Returns the current devices and identity keys for the given users. +func (c *Client) QueryUserKeys(ctx context.Context, serverName string, req *mautrix.ReqQueryKeys) (resp *mautrix.RespQueryKeys, err error) { + return resp, c.MakeRequest(ctx, serverName, true, http.MethodPost, URLPath{"v1", "user", "keys", "query"}, req, &resp) +} + +// ClaimUserKeys Claims one-time keys for use in pre-key messages. +func (c *Client) ClaimUserKeys(ctx context.Context, serverName string, req *mautrix.ReqClaimKeys) (resp *mautrix.RespClaimKeys, err error) { + return resp, c.MakeRequest(ctx, serverName, true, http.MethodPost, URLPath{"v1", "user", "keys", "claim"}, req, &resp) +} + type URLPath []any func (fup URLPath) FullPath() []any {