Support unprefixed versions of fallback key property names. (#11541)
parent
b3bcacf3c1
commit
b47d10dc46
|
@ -0,0 +1 @@
|
||||||
|
Support unprefixed versions of fallback key property names.
|
|
@ -580,7 +580,9 @@ class E2eKeysHandler:
|
||||||
log_kv(
|
log_kv(
|
||||||
{"message": "Did not update one_time_keys", "reason": "no keys given"}
|
{"message": "Did not update one_time_keys", "reason": "no keys given"}
|
||||||
)
|
)
|
||||||
fallback_keys = keys.get("org.matrix.msc2732.fallback_keys", None)
|
fallback_keys = keys.get("fallback_keys") or keys.get(
|
||||||
|
"org.matrix.msc2732.fallback_keys"
|
||||||
|
)
|
||||||
if fallback_keys and isinstance(fallback_keys, dict):
|
if fallback_keys and isinstance(fallback_keys, dict):
|
||||||
log_kv(
|
log_kv(
|
||||||
{
|
{
|
||||||
|
|
|
@ -293,6 +293,9 @@ class SyncRestServlet(RestServlet):
|
||||||
response[
|
response[
|
||||||
"org.matrix.msc2732.device_unused_fallback_key_types"
|
"org.matrix.msc2732.device_unused_fallback_key_types"
|
||||||
] = sync_result.device_unused_fallback_key_types
|
] = sync_result.device_unused_fallback_key_types
|
||||||
|
response[
|
||||||
|
"device_unused_fallback_key_types"
|
||||||
|
] = sync_result.device_unused_fallback_key_types
|
||||||
|
|
||||||
if joined:
|
if joined:
|
||||||
response["rooms"][Membership.JOIN] = joined
|
response["rooms"][Membership.JOIN] = joined
|
||||||
|
|
|
@ -161,8 +161,9 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||||
def test_fallback_key(self):
|
def test_fallback_key(self):
|
||||||
local_user = "@boris:" + self.hs.hostname
|
local_user = "@boris:" + self.hs.hostname
|
||||||
device_id = "xyz"
|
device_id = "xyz"
|
||||||
fallback_key = {"alg1:k1": "key1"}
|
fallback_key = {"alg1:k1": "fallback_key1"}
|
||||||
fallback_key2 = {"alg1:k2": "key2"}
|
fallback_key2 = {"alg1:k2": "fallback_key2"}
|
||||||
|
fallback_key3 = {"alg1:k2": "fallback_key3"}
|
||||||
otk = {"alg1:k2": "key2"}
|
otk = {"alg1:k2": "key2"}
|
||||||
|
|
||||||
# we shouldn't have any unused fallback keys yet
|
# we shouldn't have any unused fallback keys yet
|
||||||
|
@ -175,7 +176,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||||
self.handler.upload_keys_for_user(
|
self.handler.upload_keys_for_user(
|
||||||
local_user,
|
local_user,
|
||||||
device_id,
|
device_id,
|
||||||
{"org.matrix.msc2732.fallback_keys": fallback_key},
|
{"fallback_keys": fallback_key},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -220,7 +221,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||||
self.handler.upload_keys_for_user(
|
self.handler.upload_keys_for_user(
|
||||||
local_user,
|
local_user,
|
||||||
device_id,
|
device_id,
|
||||||
{"org.matrix.msc2732.fallback_keys": fallback_key},
|
{"fallback_keys": fallback_key},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -234,7 +235,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||||
self.handler.upload_keys_for_user(
|
self.handler.upload_keys_for_user(
|
||||||
local_user,
|
local_user,
|
||||||
device_id,
|
device_id,
|
||||||
{"org.matrix.msc2732.fallback_keys": fallback_key2},
|
{"fallback_keys": fallback_key2},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -271,6 +272,25 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||||
{"failures": {}, "one_time_keys": {local_user: {device_id: fallback_key2}}},
|
{"failures": {}, "one_time_keys": {local_user: {device_id: fallback_key2}}},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# using the unstable prefix should also set the fallback key
|
||||||
|
self.get_success(
|
||||||
|
self.handler.upload_keys_for_user(
|
||||||
|
local_user,
|
||||||
|
device_id,
|
||||||
|
{"org.matrix.msc2732.fallback_keys": fallback_key3},
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
res = self.get_success(
|
||||||
|
self.handler.claim_one_time_keys(
|
||||||
|
{"one_time_keys": {local_user: {device_id: "alg1"}}}, timeout=None
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
res,
|
||||||
|
{"failures": {}, "one_time_keys": {local_user: {device_id: fallback_key3}}},
|
||||||
|
)
|
||||||
|
|
||||||
def test_replace_master_key(self):
|
def test_replace_master_key(self):
|
||||||
"""uploading a new signing key should make the old signing key unavailable"""
|
"""uploading a new signing key should make the old signing key unavailable"""
|
||||||
local_user = "@boris:" + self.hs.hostname
|
local_user = "@boris:" + self.hs.hostname
|
||||||
|
|
Loading…
Reference in New Issue