Skip to content

Commit

Permalink
modules/federation/user_keys_query: Cross signatures.
Browse files Browse the repository at this point in the history
  • Loading branch information
jevolk committed Apr 23, 2023
1 parent d80f29b commit dabc8b4
Showing 1 changed file with 54 additions and 2 deletions.
56 changes: 54 additions & 2 deletions modules/federation/user_keys_query.cc
Original file line number Diff line number Diff line change
Expand Up @@ -277,14 +277,66 @@ _query_user_device(client &client,
out, device_id
};

devices.get(std::nothrow, device_id, "keys", [&device_id, &object]
devices.get(std::nothrow, device_id, "keys", [&devices, &device_id, &object]
(const auto &event_idx, const json::object &device_keys)
{
const auto &user_id
{
devices.user.user_id
};

for(const auto &member : device_keys)
if(member.first != "signatures")
json::stack::member
{
object, member
};

json::stack::object sigs
{
object, "signatures"
};

json::stack::object user_sigs
{
sigs, user_id
};

const json::object device_keys_sigs
{
device_keys["signatures"]
};

const json::object device_keys_user_sigs
{
device_keys_sigs[user_id]
};

for(const auto &member : device_keys_user_sigs)
json::stack::member
{
object, member.first, member.second
user_sigs, member
};

devices.get(std::nothrow, device_id, "signatures", [&user_id, &user_sigs]
(const auto &event_idx, const json::object &device_sigs)
{
const json::object device_sigs_sigs
{
device_sigs["signatures"]
};

const json::object device_sigs_user_sigs
{
device_sigs_sigs[user_id]
};

for(const auto &member : device_sigs_user_sigs)
json::stack::member
{
user_sigs, member
};
});
});

devices.get(std::nothrow, device_id, "display_name", [&device_id, &object]
Expand Down

0 comments on commit dabc8b4

Please sign in to comment.