store ed25519 key from olm event rather than one in m.room_key payload
that's the docs/js-sdk do it, even though it probably doesn't matter much as we verify the key anyway
This commit is contained in:
parent
40ed66dc5e
commit
2b59c8bb7c
1 changed files with 13 additions and 3 deletions
|
@ -109,9 +109,19 @@ export class Decryption {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async addRoomKeys(payloads, txn) {
|
/**
|
||||||
|
* @type {MegolmInboundSessionDescription}
|
||||||
|
* @property {string} senderKey the sender key of the session
|
||||||
|
* @property {string} sessionId the session identifier
|
||||||
|
*
|
||||||
|
* Adds room keys as inbound group sessions
|
||||||
|
* @param {Array<OlmDecryptionResult>} decryptionResults an array of m.room_key decryption results.
|
||||||
|
* @param {[type]} txn a storage transaction with read/write on inboundGroupSessions
|
||||||
|
* @return {Promise<Array<MegolmInboundSessionDescription>>} an array with the newly added sessions
|
||||||
|
*/
|
||||||
|
async addRoomKeys(decryptionResults, txn) {
|
||||||
const newSessions = [];
|
const newSessions = [];
|
||||||
for (const {senderKey, event} of payloads) {
|
for (const {senderCurve25519Key: senderKey, event, claimedEd25519Key} of decryptionResults) {
|
||||||
const roomId = event.content?.["room_id"];
|
const roomId = event.content?.["room_id"];
|
||||||
const sessionId = event.content?.["session_id"];
|
const sessionId = event.content?.["session_id"];
|
||||||
const sessionKey = event.content?.["session_key"];
|
const sessionKey = event.content?.["session_key"];
|
||||||
|
@ -136,7 +146,7 @@ export class Decryption {
|
||||||
senderKey,
|
senderKey,
|
||||||
sessionId,
|
sessionId,
|
||||||
session: session.pickle(this._pickleKey),
|
session: session.pickle(this._pickleKey),
|
||||||
claimedKeys: event.keys,
|
claimedKeys: {ed25519: claimedEd25519Key},
|
||||||
};
|
};
|
||||||
txn.inboundGroupSessions.set(sessionEntry);
|
txn.inboundGroupSessions.set(sessionEntry);
|
||||||
newSessions.push(sessionEntry);
|
newSessions.push(sessionEntry);
|
||||||
|
|
Reference in a new issue