diff --git a/synapse/api/constants.py b/synapse/api/constants.py index 5baba43966bb..92b5790557a2 100644 --- a/synapse/api/constants.py +++ b/synapse/api/constants.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Copyright 2014-2016 OpenMarket Ltd # Copyright 2017 Vector Creations Ltd +# Copyright 2018 New Vector Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -70,6 +71,7 @@ class EventTypes(object): CanonicalAlias = "m.room.canonical_alias" RoomAvatar = "m.room.avatar" GuestAccess = "m.room.guest_access" + Encryption = "m.room.encryption" # These are used for validation Message = "m.room.message" diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index 8df8fcbbadc6..bcb54fe41ad4 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -46,12 +46,14 @@ class RoomCreationHandler(BaseHandler): "history_visibility": "shared", "original_invitees_have_ops": False, "guest_can_join": True, + "encryption_alg": "m.megolm.v1.aes-sha2", }, RoomCreationPreset.TRUSTED_PRIVATE_CHAT: { "join_rules": JoinRules.INVITE, "history_visibility": "shared", "original_invitees_have_ops": True, "guest_can_join": True, + "encryption_alg": "m.megolm.v1.aes-sha2", }, RoomCreationPreset.PUBLIC_CHAT: { "join_rules": JoinRules.PUBLIC, @@ -373,6 +375,15 @@ def send(etype, content, **kwargs): content=content, ) + if "encryption_alg" in config: + send( + etype=EventTypes.Encryption, + state_key="", + content={ + 'algorithm': config["encryption_alg"], + } + ) + class RoomContextHandler(BaseHandler): @defer.inlineCallbacks