Commit Graph

3983 Commits

Author SHA1 Message Date
Jonas Platte
d3679c1902 federation-api: Use Raw around CrossSigningKey, DeviceKeys, OneTimeKey 2021-12-14 15:37:00 +01:00
Jonas Platte
1a9047a715 ruma: Propagate unstable-pre-spec feature to ruma-identifiers
Happens indirectly as well, but more future-proof this way.
2021-12-14 12:45:01 +01:00
Jonas Platte
c082969d16 Adjust to clippy lint rename 2021-12-10 13:10:58 +01:00
Jonas Platte
75283845bc appservice-api: Remove pointless import 2021-12-09 22:59:50 +01:00
Jonas Platte
7e3b727d04 Fix / silence clippy lints 2021-12-09 15:50:42 +01:00
Jonas Platte
7ebe660402 common: Add compatibility hack for empty-string canonical_alias 2021-12-09 12:38:30 +01:00
Jonas Platte
28371945de client-api: Remove unused PublicRoomsChunk type
There's a copy of this type in ruma-common which is actually being used.
2021-12-09 12:37:56 +01:00
Damir Jelić
fdbc4d6d1d ruma-client-api: Use just a BTreeMap for the /keys/upload fields 2021-12-06 11:26:14 +01:00
Damir Jelić
ee3c8f3335 ruma: Fix a bunch of typos 2021-12-06 11:26:14 +01:00
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
96374a7517 state-res: Rename RoomVersion::VERSION{num} to RoomVersion::V{num} 2021-12-04 18:59:39 +01:00
Jonas Platte
a1cf04076c state-res: Remove unused RoomVersion::version field 2021-12-04 18:58:38 +01:00
Devin Ragotzy
7f0913ccd7 state-res: Add membership check for Knock behind unstable feature 2021-12-04 18:48:03 +01:00
Jonas Platte
c48aead00e identifiers: Replace qualified paths with imports 2021-12-01 19:51:38 +01:00
Jonas Platte
16f031fabb state-res: Make the API generic over the event ID storage 2021-11-27 23:18:34 +01:00
Jonas Platte
a9c12f0909 state-res: Remove EventMap type alias 2021-11-27 22:44:34 +01:00
Jonas Platte
399bd7d82d state-res: Rename generic parameter 2021-11-27 18:13:32 +01:00
Jonas Platte
881f64fd64 signatures: Simplify imports 2021-11-27 01:26:02 +01:00
Devin Ragotzy
d15c877ad1 events: Update m.room.member for room versions 7 - 9
* Add join_authorized_via_users_server key for roomver 8+
* Add custom redaction impl for RoomMemberEventContent
2021-11-26 22:11:28 +00:00
Jonas Platte
bba7d62442 identifiers: Add Rc / Arc parsing constructors 2021-11-26 21:03:11 +01:00
Jonas Platte
6324034f03 identifiers: Generate public parse functions for opaque ID types with invariants 2021-11-26 20:57:47 +01:00
Jonas Platte
87194d5bf9 identifiers: Consolidate unsafe code 2021-11-26 20:41:59 +01:00
Jonas Platte
9ed75241a6 state-res: Refactor lexicographical_topological_sort
Gets rid of unnecessary copying and makes things more explicit by using
a struct with named fields instead of a tuple for tie breaking.

Co-authored-by: Jonathan de Jong <jonathan@automatia.nl>
2021-11-26 20:22:57 +01:00
Jonas Platte
6c48926649 identifiers: Add more conversions for RoomOrAliasId 2021-11-26 17:50:29 +01:00
Jonas Platte
2a2028f1a7 identifiers: Remove runtime checks for RoomOrAliasId conversions 2021-11-26 17:50:04 +01:00
Jonas Platte
4132c43cbb identifiers: Remove runtime checks for server_name extraction 2021-11-26 17:43:02 +01:00
Jonas Platte
c3382f085c identifiers: Make device_id! return a reference
Not necessarily 'static like the other macros but otherwise consistent.
2021-11-26 16:47:55 +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
f03065793b identifiers: Update changelog 2021-11-26 00:53:07 +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
a81769c3fd identifiers: Clean up internal macros 2021-11-26 00:40:44 +01:00
Jonas Platte
f448f6756e identifiers: Derive PartialEq, Eq, PartialOrd, Ord, Hash for str newtypes
… instead of generating them in our own macro.
2021-11-26 00:40:44 +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
a38f78e2d3 identifiers: Move opaque identifier declarations out of macro 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
206c25e7e7 identifiers: Add more PartialEq implementations 2021-11-25 21:07:14 +01:00
Jonas Platte
ce947741cb identifiers: Reduce macro code duplication 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
c38084432f identifiers: Borrow mxid in sign_invitation_ed25519 Request 2021-11-25 21:07:03 +01:00
Jonas Platte
e9c1425acd client-api: Add missing reference to request parameter type 2021-11-24 21:36:24 +01:00
Jonas Platte
d54378eecf Update recommended VSCode settings 2021-11-24 12:24:56 +01:00