Skip to content

Commit

Permalink
Segment recorded device info by user ID when tracking key shares.
Browse files Browse the repository at this point in the history
Fixes #2135.
  • Loading branch information
dkasak committed Apr 15, 2022
1 parent 9f45986 commit ea6bd5d
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/crypto/algorithms/megolm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ class MegolmEncryption extends EncryptionAlgorithm {
payload: IPayload,
): Promise<void> {
const contentMap: Record<string, Record<string, IEncryptedContent>> = {};
const deviceInfoByDeviceId = new Map<string, DeviceInfo>();
const deviceInfoByDeviceId = new Map<string, Map<string, DeviceInfo>>();

const promises: Promise<unknown>[] = [];
for (let i = 0; i < userDeviceMap.length; i++) {
Expand All @@ -605,7 +605,10 @@ class MegolmEncryption extends EncryptionAlgorithm {
const userId = val.userId;
const deviceInfo = val.deviceInfo;
const deviceId = deviceInfo.deviceId;
deviceInfoByDeviceId.set(deviceId, deviceInfo);
if (deviceInfoByDeviceId.get(userId) === undefined) {
deviceInfoByDeviceId.set(userId, new Map<string, DeviceInfo>());
}
deviceInfoByDeviceId.get(userId).set(deviceId, deviceInfo);

if (!contentMap[userId]) {
contentMap[userId] = {};
Expand Down Expand Up @@ -660,7 +663,7 @@ class MegolmEncryption extends EncryptionAlgorithm {
session.markSharedWithDevice(
userId,
deviceId,
deviceInfoByDeviceId.get(deviceId).getIdentityKey(),
deviceInfoByDeviceId.get(userId).get(deviceId).getIdentityKey(),
chainIndex,
);
}
Expand Down

0 comments on commit ea6bd5d

Please sign in to comment.