138 Commits

Author SHA1 Message Date
Jason Volk
0120acc116 fix doc lints
Signed-off-by: Jason Volk <jason@zemos.net>
2025-02-05 10:34:43 +00:00
Jason Volk
ac37db212a fix lints
Signed-off-by: Jason Volk <jason@zemos.net>
2025-01-01 22:20:39 +00:00
Kévin Commaille
ae3897cad8 identifiers: Allow to validate KeyId with any key name type
Use new trait bounds for KeyId to only allow specific types.
Change the KeyId validation to be generic over the key name type.
Remove the KeyName type and replace it with the more specific
ServerSigningKeyVersion.
2024-11-08 12:49:53 -05:00
Jason Volk
d7baeb7e5c add required_keys util to signatures
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-14 03:54:43 +00:00
Jason Volk
90fb81eabe reduce excessive cloning for verify_json
Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-10 01:27:04 +00:00
Jonas Platte
1a138ed6c9 Use workspace lint configuration instead of rustflags hack 2024-09-11 07:13:32 +00:00
Kévin Commaille
04654f8833 chore: Fix new clippy warnings 2024-07-29 20:03:44 +02:00
Kévin Commaille
9e8008f011 chore: Make rand a workspace dependency 2024-07-16 15:02:45 +02:00
Kévin Commaille
42f20a4e8d
Release ruma-signatures 0.15.0 2024-05-09 13:01:32 +02:00
Jonas Platte
4a02b97aa3
Update website URL 2024-04-04 13:20:58 +02:00
Jonas Platte
c82f600d6a
Fix new lints 2023-11-08 18:16:44 +01:00
Jonas Platte
e658b8b128
Remove 'www.' from ruma.io URLs 2023-10-12 15:44:00 +02:00
Jonas Platte
558f342a62
Release ruma-signatures 0.14.0 2023-10-05 17:10:02 +02:00
Jonas Platte
ba2914a22a
macros: Simplify symbol path 2023-08-25 10:36:25 +02:00
Jonas Platte
c7a3c4e4fc
Upgrade ed25519-dalek to 2.0
Co-authored-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-08-24 20:48:54 +02:00
Kévin Commaille
2753577d02 signatures: Add test to check reproducibility of signatures 2023-08-23 16:55:57 +02:00
Jonas Platte
8e10064364 Enforce import grouping
Includes a few manual changes to make rustfmt behave a bit better.
2023-08-22 12:31:49 +02:00
Kévin Commaille
ffdd632701 signatures: Add missing RoomVersionId::V11 match 2023-08-12 15:54:41 +02:00
Jonas Platte
3dac70ead9
Remove most unreachable visibility modifiers 2023-07-19 14:32:14 +02:00
Jonas Platte
ba5bf8cfce
Replace assert_matches by assert_matches2 2023-06-08 11:37:11 +02:00
Kévin Commaille
d78c3e11f1 signatures: Remove age_ts from reference hash calculation
According to a spec clarification
2023-05-24 20:08:20 +02:00
Jonas Platte
4c85fe9c78
Replace compat feature with more fine-grained compat-* features
… and document them.
2023-04-20 14:00:27 +02:00
gnieto
7565588be7
signatures: Prevent accepting events without at least one valid signature
`verify_event` has been changed recently to be more aligned with the
spec. In the previous algorithm, it returned an error if the event was
not signed by at least one of the required entities.

The new algortihm is iterating over all the signtures for the required
entities *and* skipping unknown algorithms. If an event is signed only
by unkonwn algorithms, the event would be accepted and not verifications
will happen. In order to prevent that, we check that, at least, a single
key is checked. This covers the 2nd point in: https://spec.matrix.org/v1.6/appendices/#checking-for-a-signature

A few more test cases were added:

- The event is properly signed, but key map contains a key with an
  unknown algorithm. Under this circumstances, the event should be
  allowed.
- An event signed by multiple keys for an entity, should verify all
  those signatures
- An event signed by a single key with an unkown algorithm by the
  required entity, should fail
2023-03-02 09:34:57 +00:00
Jason Volk
87237bf100 signatures: Comply with the specified signature checking algorithm.
Based on research https://github.com/ruma/ruma/pull/1491#issuecomment-1445042510 by @zecakeh
2023-03-01 22:25:06 +01:00
Jason Volk
920a412da1 signatures: Skip keys which don't split so other keys can be used instead. 2023-03-01 22:25:06 +01:00
Jason Volk
bcb97b139d
signatures: Allow additional key version-string characters in compat mode
This complies with the published specification by default, with optional compatibility for additional federation keys in use.

Co-authored-by: Jonathan de Jong <jonathan@automatia.nl>
2023-03-01 09:54:38 +01:00
Kévin Commaille
8f74ec4b1a
Release ruma-signatures 0.13.1 2023-02-15 13:08:31 +01:00
Kévin Commaille
f159776f52 chore: Make all applicable spec links use the latest spec instead of a specific version 2023-02-12 12:39:24 +01:00
Jonas Platte
0d689f0a76
Release ruma-signatures 0.13.0 2023-02-01 14:14:16 +01:00
Jonas Platte
b6f0a43fa3
Use workspace dependencies for path dependencies 2023-02-01 12:37:45 +01:00
Jonas Platte
fe5077b1a5
Upgrade base64 to 0.21 2023-01-31 18:01:01 +01:00
Jonas Platte
78ef5270ba Upgrade dependencies 2023-01-03 11:28:47 +01:00
Jonas Platte
536341ca7e Upgrade base64 to 0.20 2022-12-20 15:34:50 +01:00
Jonas Platte
284b797e05
Add optional redacted_because insertion to redaction 2022-12-19 12:52:15 +01:00
Jonas Platte
ba9634f5bf
Update redact to take ownership of the event to be redacted 2022-12-19 10:42:27 +01:00
Jonas Platte
d18bea570c Use Cargo workspace dependencies
… for most external dependencies that are used from multiple workspace
crates.
2022-11-01 11:13:21 +01:00
Kévin Commaille
045861441a doc: Update Matrix spec links to v1.4 2022-10-21 10:41:20 +02:00
Jonas Platte
3c3c6f388f
Merge branch 'ruma-0.7' 2022-10-18 09:14:16 +02:00
Jonas Platte
67b2ec7d34
Release ruma-common 0.10.5 2022-10-18 09:09:59 +02:00
Jonas Platte
6ec7fc09ea
Merge branch 'ruma-0.7' 2022-10-17 18:05:42 +02:00
Jonas Platte
83d60d1fab
Release ruma-common 0.10.4 2022-10-17 17:27:27 +02:00
Kévin Commaille
b538234bce chore: Fix new docs warnings 2022-10-12 10:31:23 +02:00
Jonas Platte
d38fa052e2
Release ruma-common 0.10.3 2022-09-16 12:13:19 +02:00
Jonas Platte
4d192ff3dc
Release ruma-common 0.10.2 2022-09-16 11:55:56 +02:00
Jonas Platte
8460189668
Release ruma-common 0.10.1 2022-09-14 21:28:23 +02:00
Jonas Platte
0047b1d19b
Release ruma-signatures 0.12.0 2022-09-12 21:08:31 +02:00
Jonas Platte
69aa77ca5f
Release ruma-common 0.10.0 2022-09-12 20:26:06 +02:00
Jonas Platte
c745d3baf7
Fix clippy lint 2022-09-02 14:07:28 +02:00
Jonas Platte
4db337b86a Consistently use dep: syntax for feature > package dependencies
This removes confusing implicit features from optional dependencies.
2022-08-01 15:46:20 +02:00
Jonas Platte
6b04b6c567
signatures: Silence unreachable lint with unstable-exhaustive-patterns 2022-06-29 10:50:25 +02:00