diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index c32908ac28..725c6f3fa5 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -323,13 +323,16 @@ class FederationServer(FederationBase):
else:
for device_id in device_ids:
query.append((user_id, device_id))
+
results = yield self.store.get_e2e_device_keys(query)
+
json_result = {}
for user_id, device_keys in results.items():
for device_id, json_bytes in device_keys.items():
json_result.setdefault(user_id, {})[device_id] = json.loads(
json_bytes
)
+
defer.returnValue({"device_keys": json_result})
@defer.inlineCallbacks
@@ -339,7 +342,9 @@ class FederationServer(FederationBase):
for user_id, device_keys in content.get("one_time_keys", {}).items():
for device_id, algorithm in device_keys.items():
query.append((user_id, device_id, algorithm))
+
results = yield self.store.claim_e2e_one_time_keys(query)
+
json_result = {}
for user_id, device_keys in results.items():
for device_id, keys in device_keys.items():
@@ -347,6 +352,7 @@ class FederationServer(FederationBase):
json_result.setdefault(user_id, {})[device_id] = {
key_id: json.loads(json_bytes)
}
+
defer.returnValue({"one_time_keys": json_result})
@defer.inlineCallbacks
|