File tree Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -23,9 +23,22 @@ issue with respect to setting up cross-signing.
23
23
24
24
## Proposal
25
25
26
- For the ` POST /_matrix/client/v3/keys/device_signing/upload ` endpoint the
27
- Homeserver should only require User-Interactive Authentication (UIA) if the user
28
- already has an existing cross-signing master key uploaded to the Homeserver.
26
+ For the ` POST /_matrix/client/v3/keys/device_signing/upload ` endpoint, the
27
+ Homeserver MUST require User-Interactive Authentication (UIA) _ unless_ :
28
+ - there is no existing cross-signing master key uploaded to the Homeserver, OR
29
+ - there is an existing cross-signing master key and it exactly matches the
30
+ cross-signing master key provided in the request body. If there are any additional
31
+ keys provided in the request (self signing key, user signing key) they MUST also
32
+ match the existing keys stored on the server. In other words, the request contains
33
+ no new keys. If there are new keys, UIA MUST be performed.
34
+
35
+ In these scenarios, this endpoint is not protected by UIA. This means the client does not
36
+ need to send an ` auth ` JSON object with their request.
37
+
38
+ This change allows clients to freely upload 1 set of keys, but not modify/overwrite keys if
39
+ they already exist. By allowing clients to upload the same set of keys more than once, this
40
+ makes this endpoint idempotent in the case where the response is lost over the network, which
41
+ would otherwise cause a UIA challenge upon retry.
29
42
30
43
## Potential issues
31
44
You can’t perform that action at this time.
0 commit comments