Skip to content

Commit e1aa7d3

Browse files
authored
Improve logging of e2ee messages (#2884)
Attempt to make the way we log megolm session ids more consistent.
1 parent 29643e7 commit e1aa7d3

File tree

2 files changed

+17
-20
lines changed

2 files changed

+17
-20
lines changed

src/crypto/OlmDevice.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1139,17 +1139,14 @@ export class OlmDevice {
11391139
}
11401140

11411141
if (existingSession) {
1142-
logger.log(
1143-
"Update for megolm session "
1144-
+ senderKey + "/" + sessionId,
1145-
);
1142+
logger.log(`Update for megolm session ${senderKey}|${sessionId}`);
11461143
if (existingSession.first_known_index() <= session.first_known_index()) {
11471144
if (!existingSessionData!.untrusted || extraSessionData.untrusted) {
11481145
// existing session has less-than-or-equal index
11491146
// (i.e. can decrypt at least as much), and the
11501147
// new session's trust does not win over the old
11511148
// session's trust, so keep it
1152-
logger.log(`Keeping existing megolm session ${sessionId}`);
1149+
logger.log(`Keeping existing megolm session ${senderKey}|${sessionId}`);
11531150
return;
11541151
}
11551152
if (existingSession.first_known_index() < session.first_known_index()) {
@@ -1164,15 +1161,15 @@ export class OlmDevice {
11641161
) {
11651162
logger.info(
11661163
"Upgrading trust of existing megolm session " +
1167-
sessionId + " based on newly-received trusted session",
1164+
`${senderKey}|${sessionId} based on newly-received trusted session`,
11681165
);
11691166
existingSessionData!.untrusted = false;
11701167
this.cryptoStore.storeEndToEndInboundGroupSession(
11711168
senderKey, sessionId, existingSessionData!, txn,
11721169
);
11731170
} else {
11741171
logger.warn(
1175-
"Newly-received megolm session " + sessionId +
1172+
`Newly-received megolm session ${senderKey}|$sessionId}` +
11761173
" does not match existing session! Keeping existing session",
11771174
);
11781175
}
@@ -1183,8 +1180,8 @@ export class OlmDevice {
11831180
}
11841181

11851182
logger.info(
1186-
"Storing megolm session " + senderKey + "/" + sessionId +
1187-
" with first index " + session.first_known_index(),
1183+
`Storing megolm session ${senderKey}|${sessionId} with first index `+
1184+
session.first_known_index(),
11881185
);
11891186

11901187
const sessionData = Object.assign({}, extraSessionData, {

src/crypto/algorithms/megolm.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -696,28 +696,27 @@ class MegolmEncryption extends EncryptionAlgorithm {
696696
): Promise<void> {
697697
const obSessionInfo = this.outboundSessions[sessionId];
698698
if (!obSessionInfo) {
699-
logger.debug(`megolm session ${sessionId} not found: not re-sharing keys`);
699+
logger.debug(`megolm session ${senderKey}|${sessionId} not found: not re-sharing keys`);
700700
return;
701701
}
702702

703703
// The chain index of the key we previously sent this device
704704
if (obSessionInfo.sharedWithDevices[userId] === undefined) {
705-
logger.debug(`megolm session ${sessionId} never shared with user ${userId}`);
705+
logger.debug(`megolm session ${senderKey}|${sessionId} never shared with user ${userId}`);
706706
return;
707707
}
708708
const sessionSharedData = obSessionInfo.sharedWithDevices[userId][device.deviceId];
709709
if (sessionSharedData === undefined) {
710710
logger.debug(
711-
"megolm session ID " + sessionId + " never shared with device " +
712-
userId + ":" + device.deviceId,
711+
`megolm session ${senderKey}|${sessionId} never shared with device ${userId}:${device.deviceId}`,
713712
);
714713
return;
715714
}
716715

717716
if (sessionSharedData.deviceKey !== device.getIdentityKey()) {
718717
logger.warn(
719-
`Session has been shared with device ${device.deviceId} but with identity ` +
720-
`key ${sessionSharedData.deviceKey}. Key is now ${device.getIdentityKey()}!`,
718+
`Megolm session ${senderKey}|${sessionId} has been shared with device ${device.deviceId} but ` +
719+
`with identity key ${sessionSharedData.deviceKey}. Key is now ${device.getIdentityKey()}!`,
721720
);
722721
return;
723722
}
@@ -730,7 +729,7 @@ class MegolmEncryption extends EncryptionAlgorithm {
730729

731730
if (!key) {
732731
logger.warn(
733-
`No inbound session key found for megolm ${sessionId}: not re-sharing keys`,
732+
`No inbound session key found for megolm session ${senderKey}|${sessionId}: not re-sharing keys`,
734733
);
735734
return;
736735
}
@@ -776,7 +775,7 @@ class MegolmEncryption extends EncryptionAlgorithm {
776775
[device.deviceId]: encryptedContent,
777776
},
778777
});
779-
logger.debug(`Re-shared key for megolm session ${sessionId} with ${userId}:${device.deviceId}`);
778+
logger.debug(`Re-shared key for megolm session ${senderKey}|${sessionId} with ${userId}:${device.deviceId}`);
780779
}
781780

782781
/**
@@ -1902,10 +1901,11 @@ class MegolmDecryption extends DecryptionAlgorithm {
19021901
public async sendSharedHistoryInboundSessions(devicesByUser: Record<string, DeviceInfo[]>): Promise<void> {
19031902
await olmlib.ensureOlmSessionsForDevices(this.olmDevice, this.baseApis, devicesByUser);
19041903

1905-
logger.log("sendSharedHistoryInboundSessions to users", Object.keys(devicesByUser));
1906-
19071904
const sharedHistorySessions = await this.olmDevice.getSharedHistoryInboundGroupSessions(this.roomId);
1908-
logger.log("shared-history sessions", sharedHistorySessions);
1905+
logger.log(
1906+
`Sharing history in ${this.roomId} with users ${Object.keys(devicesByUser)}`,
1907+
sharedHistorySessions.map(([senderKey, sessionId]) => `${senderKey}|${sessionId}`),
1908+
);
19091909
for (const [senderKey, sessionId] of sharedHistorySessions) {
19101910
const payload = await this.buildKeyForwardingMessage(this.roomId, senderKey, sessionId);
19111911

0 commit comments

Comments
 (0)