From 132bfbcef489fbeac722acead803831e1eed7e6c 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 {