summary refs log tree commit diff
path: root/synapse/federation/federation_server.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-02-10 15:46:24 +0000
committerErik Johnston <erik@matrix.org>2015-02-10 15:46:24 +0000
commit697ab75a34b14da6d872d153f36017a6dc6d5b99 (patch)
treea26473edc4b28bd433059a99b4d1e49dc08c6765 /synapse/federation/federation_server.py
parentMerge pull request #58 from matrix-org/get_event_counters (diff)
downloadsynapse-697ab75a34b14da6d872d153f36017a6dc6d5b99.tar.xz
Sign auth_chains when returned by /state/ requests
Diffstat (limited to '')
-rw-r--r--synapse/federation/federation_server.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index 4742ca9390..b23f72c7fa 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -25,6 +25,8 @@ from synapse.events import FrozenEvent
 
 from synapse.api.errors import FederationError, SynapseError
 
+from synapse.crypto.event_signing import compute_event_signature
+
 import logging
 
 
@@ -156,6 +158,15 @@ class FederationServer(FederationBase):
             auth_chain = yield self.store.get_auth_chain(
                 [pdu.event_id for pdu in pdus]
             )
+
+            for event in auth_chain:
+                event.signatures.update(
+                    compute_event_signature(
+                        event,
+                        self.hs.hostname,
+                        self.hs.config.signing_key[0]
+                    )
+                )
         else:
             raise NotImplementedError("Specify an event")