2525
2626from synapse .api .constants import MAX_DEPTH , EventTypes , Membership
2727from synapse .api .errors import Codes , SynapseError
28- from synapse .api .room_versions import (
29- KNOWN_ROOM_VERSIONS ,
30- EventFormatVersions ,
31- RoomVersion ,
32- )
28+ from synapse .api .room_versions import EventFormatVersions , RoomVersion
3329from synapse .crypto .event_signing import check_event_content_hash
3430from synapse .crypto .keyring import Keyring
3531from synapse .events import EventBase , make_event_from_dict
@@ -55,13 +51,15 @@ def __init__(self, hs):
5551 self .store = hs .get_datastore ()
5652 self ._clock = hs .get_clock ()
5753
58- def _check_sigs_and_hash (self , room_version : str , pdu : EventBase ) -> Deferred :
54+ def _check_sigs_and_hash (
55+ self , room_version : RoomVersion , pdu : EventBase
56+ ) -> Deferred :
5957 return make_deferred_yieldable (
6058 self ._check_sigs_and_hashes (room_version , [pdu ])[0 ]
6159 )
6260
6361 def _check_sigs_and_hashes (
64- self , room_version : str , pdus : List [EventBase ]
62+ self , room_version : RoomVersion , pdus : List [EventBase ]
6563 ) -> List [Deferred ]:
6664 """Checks that each of the received events is correctly signed by the
6765 sending server.
@@ -146,7 +144,7 @@ class PduToCheckSig(
146144
147145
148146def _check_sigs_on_pdus (
149- keyring : Keyring , room_version : str , pdus : Iterable [EventBase ]
147+ keyring : Keyring , room_version : RoomVersion , pdus : Iterable [EventBase ]
150148) -> List [Deferred ]:
151149 """Check that the given events are correctly signed
152150
@@ -191,10 +189,6 @@ def _check_sigs_on_pdus(
191189 for p in pdus
192190 ]
193191
194- v = KNOWN_ROOM_VERSIONS .get (room_version )
195- if not v :
196- raise RuntimeError ("Unrecognized room version %s" % (room_version ,))
197-
198192 # First we check that the sender event is signed by the sender's domain
199193 # (except if its a 3pid invite, in which case it may be sent by any server)
200194 pdus_to_check_sender = [p for p in pdus_to_check if not _is_invite_via_3pid (p .pdu )]
@@ -204,7 +198,7 @@ def _check_sigs_on_pdus(
204198 (
205199 p .sender_domain ,
206200 p .redacted_pdu_json ,
207- p .pdu .origin_server_ts if v .enforce_key_validity else 0 ,
201+ p .pdu .origin_server_ts if room_version .enforce_key_validity else 0 ,
208202 p .pdu .event_id ,
209203 )
210204 for p in pdus_to_check_sender
@@ -227,7 +221,7 @@ def sender_err(e, pdu_to_check):
227221 # event id's domain (normally only the case for joins/leaves), and add additional
228222 # checks. Only do this if the room version has a concept of event ID domain
229223 # (ie, the room version uses old-style non-hash event IDs).
230- if v .event_format == EventFormatVersions .V1 :
224+ if room_version .event_format == EventFormatVersions .V1 :
231225 pdus_to_check_event_id = [
232226 p
233227 for p in pdus_to_check
@@ -239,7 +233,7 @@ def sender_err(e, pdu_to_check):
239233 (
240234 get_domain_from_id (p .pdu .event_id ),
241235 p .redacted_pdu_json ,
242- p .pdu .origin_server_ts if v .enforce_key_validity else 0 ,
236+ p .pdu .origin_server_ts if room_version .enforce_key_validity else 0 ,
243237 p .pdu .event_id ,
244238 )
245239 for p in pdus_to_check_event_id
0 commit comments