470 Commits

Author SHA1 Message Date
Damir Jelić
caa3c05db3 client-api: Add support for fallback keys
This implements support for MSC2732[1], fallback keys. Only support to
upload and get notifications about fallback keys via `/sync` is
implemented.

[1]: https://github.com/matrix-org/matrix-doc/pull/2732
2021-12-06 11:26:14 +01:00
Damir Jelić
af0a8f009c client-api: Update the backup API to use raw variants of types
Similarly to the way structs holding public keys require signature
verification, the BackupAlgorithm struct may require verification as
well.

This lets users know if a certain device trusts the BackupAlgorithm and
if it should be used to upload room keys to the backup.
2021-12-06 11:26:14 +01:00
Damir Jelić
786ab15c0c client-api: Use Raw variants to upload/download keys
Uploaded objects holding public keys tend to have the object signed by
the very same key that is part of the object. Users that download such
public keys are expected to verify the signature to confirm that the
public key and its surrounding fields in the object have not been
manipulated with.

The SignedKey, DeviceKeys, and CrossSigningKey structs
perform a lossy variant of deserialization, which removes the ability to
verify signatures of the aforementioned objects.

This patch changes the response types to a Raw variant, which let's the
user decide how to deserialize.
2021-12-06 11:26:14 +01:00
Jonas Platte
8923881678
identifiers: Rename RoomIdOrAliasId to RoomOrAliasId 2021-11-26 01:07:41 +01:00
Jonas Platte
6b76d7813e
identifiers: Shorten RoomVersionId variant names 2021-11-26 01:07:26 +01:00
Jonas Platte
87051c3cb6
identifiers: Make server_name! macro return a reference instead of an owned value
It is easy to turn it into an owned value through `.to_owned()`.
The reverse was not possible without tying the reference to the lifetime
of a temporary variable.
2021-11-26 00:53:07 +01:00
Jonas Platte
5852658da5
identifiers: Make KeyId a DST 2021-11-26 00:40:44 +01:00
Jonas Platte
3ce578f384
identifiers: Make UserId a DST 2021-11-26 00:40:40 +01:00
Jonas Platte
313124a099
identifiers: Make RoomIdOrAliasId a DST 2021-11-26 00:04:28 +01:00
Jonas Platte
2d4dbfe42f
identifiers: Make RoomId a DST 2021-11-26 00:04:28 +01:00
Jonas Platte
b0db5e94e1
identifiers: Make RoomAliasId a DST 2021-11-26 00:04:28 +01:00
Jonas Platte
ec605a0959
identifiers: Make MxcUri a DST 2021-11-26 00:04:28 +01:00
Jonas Platte
52608cc72c
identifiers: Make EventId a DST 2021-11-25 22:34:40 +01:00
Jonas Platte
c73eb7dce3
identifiers: Make DeviceKeyId a DST 2021-11-25 21:07:14 +01:00
Jonas Platte
438efee143
identifiers: Remove Box<$id> aliases 2021-11-25 21:07:14 +01:00
Jonas Platte
e9c1425acd
client-api: Add missing reference to request parameter type 2021-11-24 21:36:24 +01:00
Kévin Commaille
746e0a026d
client-api: Rename r0::uiaa::authorize_fallback to get_uiaa_fallback_page 2021-11-13 23:39:32 +01:00
Kévin Commaille
2d7b206fe5
client-api: Add AuthType for m.login.sso 2021-11-13 20:15:56 +01:00
Niklas Dusenlund
a100cf9728
client-api: Align endpoint name with module name 2021-11-11 00:44:02 +01:00
Callum Brown
975efcd2ee
client-api: Add registration token validity checking endpoint 2021-11-09 12:30:30 +00:00
Jonas Platte
a9ecd7f397
client-api: Break up the ill-named contacts module 2021-11-09 11:41:21 +01:00
Jonas Platte
44e8db7878
client-api: Feature-gate function that's only required for compat feature 2021-11-03 18:42:45 +01:00
Jonas Platte
21d3d75172
client-api: Fix up previous botched PRs 2021-11-03 18:31:38 +01:00
Jonas Platte
347ae72531
client-api: Revert change of serialized name of thredparty_id_creds under compat feature 2021-11-03 18:26:31 +01:00
Jonas Platte
8b0687b08c
client-api: Add support for deserializing thirdparty_id_creds from an object 2021-11-03 18:23:05 +01:00
Jonas Platte
076420d798
client-api: Fix serde attributes 2021-11-03 18:13:58 +01:00
Jonas Platte
d4df8ac76d
client-api: Change serialized name of thirdparty_id_creds in compat mode 2021-11-03 18:08:37 +01:00
Jonas Platte
0ea6dca815
client-api: Support alternative name for thirdparty_id_creds fields 2021-11-03 18:05:35 +01:00
Jonas Platte
bccbde6f83
api: Remove {Request,Response}DeserializationError 2021-10-29 22:44:15 +02:00
Jonas Platte
f634be9838
client-api: Add missing periods in docs 2021-10-28 21:32:14 +02:00
Jonas Platte
e7f01ca55a
client-api: Use Raw for create_room::Request::creation_content 2021-10-24 00:43:49 +02:00
Jonas Platte
cda6119224
client-api: Fix unused import 2021-10-15 21:04:31 +02:00
Jonas Platte
58cdcae1f9
client-api: Fix login request deserialization 2021-10-15 17:09:02 +02:00
Jonas Platte
b3af33f1fc
client-api: Consistently use outer attributes for cfg-conditional modules 2021-10-08 12:50:41 +02:00
Jonas Platte
aa5fdf9d22
Merge serde attributes and improve docs 2021-10-08 12:49:13 +02:00
Jonas Platte
271491732e
Remove now-redundant doc(cfg) attributes
They are now implied:
https://github.com/rust-lang/rust/pull/89596
2021-10-08 11:52:18 +02:00
Devin Ragotzy
bdcfc12ac7
Update client-server spec links 2021-10-06 10:48:08 +02:00
Jonas Platte
04080085f9
events: Include all event type segments in Rust type names 2021-10-02 21:25:21 +02:00
Jonas Platte
678d3cd4ee
events: Small documentation improvements 2021-10-01 19:37:52 +02:00
Johannes Becker
e2386b7b64 client-api: Add custom variant to LoginInfo 2021-09-28 11:23:11 +02:00
Jonas Platte
031dedebc9
client-api: Fix small mistakes in IncomingAuthData::new docs 2021-09-27 19:51:10 +02:00
Jonas Platte
d92e7b4ca7
client-api: Remove no-op attribute 2021-09-27 19:49:47 +02:00
Johannes Becker
224d8a18e8
client-api: Add IncomingAuthData::new and IncomingAuthData::to_outgoing 2021-09-27 16:57:34 +00:00
Jonas Platte
5d36a97b59
client-api: Make fields of doc(hidden) structs private 2021-09-27 13:30:17 +02:00
Jonas Platte
8f88386125
client-api: Add data accessor to [Incoming]AuthData 2021-09-27 13:26:56 +02:00
Jonas Platte
6353e06bd5
client-api: make ThirdpartyIdCredentials an owned type 2021-09-27 13:25:16 +02:00
Jonas Platte
af250cf108
Merge JsonObject type aliases 2021-09-27 12:55:31 +02:00
Jonas Platte
79cbce00cc
client-api: Update change log 2021-09-23 18:20:51 +02:00
Niklas Kunz
efd5ad52fa
client-api: Add the reason field for remaining endpoints (MSC2367) 2021-09-23 16:18:49 +00:00
Jonas Platte
a7be60d9eb
client-api: Use an enum for user-interactive auth stage type 2021-09-23 18:04:30 +02:00