Compare commits

...

3 commits

Author SHA1 Message Date
Kévin Commaille e366f451c2
Reset unwanted changes and clarify that ephemeral key must be the same string
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-04-22 12:36:29 +00:00
Kévin Commaille 161fe0df33
Add links to unpadded base64 definition
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-04-22 12:33:33 +00:00
Kévin Commaille e09c708ae7
Fix typo and links
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-04-22 12:14:42 +00:00
3 changed files with 25 additions and 15 deletions

View file

@ -39,7 +39,7 @@ A client asks a server to invite a user by their third-party identifier.
Upon receipt of an [`/invite`](#thirdparty_post_matrixclientv3roomsroomidinvite),
the server is expected to look up the third-party identifier with the provided
identity server byt making a call to [`/lookup`](/identity-service-api/#post_matrixidentityv2lookup).
identity server by making a call to [`/_matrix/identity/v2/lookup`](/identity-service-api/#post_matrixidentityv2lookup).
If the lookup yields a result for a Matrix User ID then the normal [invite
process](/server-server-api/#inviting-to-a-room) can be initiated. This process
ends up looking like this:
@ -69,7 +69,8 @@ ends up looking like this:
```
However, if the lookup does not yield a bound User ID, the homeserver must store
the invite on the identity server with a call to [`/store-invite`](/identity-service-api/#post_matrixidentityv2store-invite)
the invite on the identity server with a call to
[`/_matrix/identity/v2/store-invite`](/identity-service-api/#post_matrixidentityv2store-invite)
and emit a valid [`m.room.third_party_invite`](#mroomthird_party_invite) event
to the room. This process ends up looking like this:
@ -104,14 +105,14 @@ to the room. This process ends up looking like this:
```
The third-party user will then need to verify their identity, which results in a
request to [`/3pid/onbind`](/server-server-api/#put_matrixfederationv13pidonbind)
request to [`/_matrix/federation/v1/3pid/onbind`](/server-server-api/#put_matrixfederationv13pidonbind)
from the identity server to the homeserver that bound the third-party identifier
to a user. The homeserver then exchanges the `m.room.third_party_invite` event
in the room for a complete `m.room.member` event with
in the room for a complete [`m.room.member`](#mroommember) event with
`content.membership: invite` and a `content.third_party_invite` property for the
user that has bound the third-party identifier. If the invitee is on a different
homeserver than the inviting user, the invitee's homeserver makes a request to
[`/exchange_third_party_invite`](/server-server-api/#put_matrixfederationv1exchange_third_party_inviteroomid).
[`/_matrix/federation/v1/exchange_third_party_invite/{roomId}`](/server-server-api/#put_matrixfederationv1exchange_third_party_inviteroomid).
All homeservers MUST verify the signature in the `m.room.member` event's
`content.third_party_invite.signed` object.

View file

@ -43,7 +43,8 @@ paths:
properties:
public_key:
type: string
description: Public key using standard or URL-safe base64 encoding.
description: |-
[Unpadded Base64](/appendices/#unpadded-base64)-encoded public key.
required:
- public_key
examples:
@ -74,7 +75,8 @@ paths:
- in: query
name: public_key
required: true
description: The unpadded standard or URL-safe base64-encoded public key to check.
description: |-
The [unpadded Base64](/appendices/#unpadded-base64)-encoded public key to check.
example: VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c
schema:
type: string
@ -105,7 +107,14 @@ paths:
- in: query
name: public_key
required: true
description: The unpadded standard or URL-safe base64-encoded public key to check.
description: |-
The [unpadded Base64](/appendices/#unpadded-base64)-encoded public
key to check.
This MUST be the exact same encoded string returned in the response
of the [`/store-invite`](/identity-service-api/#post_matrixidentityv2store-invite)
endpoint, or found in the corresponding [`m.room.third_party_invite`](/client-server-api/#mroomthird_party_invite)
event, so it may use the standard or URL-safe alphabets.
example: VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c
schema:
type: string

View file

@ -25,11 +25,11 @@ properties:
format: uri
public_key:
description: |-
A base64-encoded ed25519 key with which the token must be signed
(though a signature from any entry in public_keys is also sufficient).
An Ed25519 key with which the token must be signed (though a signature
from any entry in `public_keys` is also sufficient).
The key is encoded using unpadded standard or URL-safe base64
encoding.
The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64),
using the standard or URL-safe alphabets.
This exists for backwards compatibility.
type: string
@ -47,10 +47,10 @@ properties:
type: string
public_key:
description: |-
A base-64 encoded ed25519 key with which token may be signed.
An Ed25519 key with which the token may be signed.
The key is encoded using unpadded standard or URL-safe base64
encoding.
The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64),
using the standard or URL-safe alphabets.
type: string
required:
- public_key