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
Isaiah Inuwa
370d59a9bc
client: Use constructor for non-exhaustive LoginInfo struct
2021-11-23 23:02:27 -06:00
Jonas Platte
1e9f846722
events: Add accessor methods for RoomMessageEventContent
2021-11-23 10:50:14 +01:00
Jonas Platte
897146e369
events: Fix some docs being on wrong constructor
2021-11-19 10:49:11 +01:00
Jonas Platte
49e5d45ac9
events: Improve usability and docs of m.room.message
reply constructors
2021-11-18 22:51:58 +01:00
Jonas Platte
24950b208e
events: Stop relying on UserId Debug format
2021-11-18 21:41:10 +01:00
Jonas Platte
824ef40bd9
events: Move message reply helper functions into a separate module
2021-11-18 20:20:43 +01:00
Jonas Platte
1a87403ba2
Rewrite some Display & Debug implementations
...
To delete in a more obvious way and to include debug formatting for
Debug impls (i.e. enclose the string in quotes).
2021-11-18 19:49:40 +01:00
Jonas Platte
3959ec4abb
events: Fix a typo
2021-11-18 19:32:02 +01:00
Jonas Platte
b7334edaf7
events: Update reply ctor argument types
2021-11-18 19:12:08 +01:00
Andy Balaam
b4226f882b
identifiers: Document how to create a DeviceId
2021-11-18 16:57:01 +01:00
Devin Ragotzy
7fbfe59091
state-res: Minor fixes & doc updates
2021-11-15 23:08:12 +01:00