Skip to content

Commit 30d59f5

Browse files
committed
Wip ratchet update
1 parent e9f86ce commit 30d59f5

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

src/e2ee/matrixKeyProvider.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
55
Please see LICENSE in the repository root for full details.
66
*/
77

8-
import { BaseKeyProvider, createKeyMaterialFromBuffer, importKey, KeyProviderEvent } from "livekit-client";
8+
import {
9+
BaseKeyProvider,
10+
importKey,
11+
KeyProviderEvent,
12+
RatchetResult
13+
} from "livekit-client";
914
import { logger } from "matrix-js-sdk/lib/logger";
1015
import {
1116
type MatrixRTCSession,
@@ -15,22 +20,17 @@ import {
1520
export class MatrixKeyProvider extends BaseKeyProvider {
1621
private rtcSession?: MatrixRTCSession;
1722

18-
private readonly onKeyRatchetComplete: (material: ArrayBuffer, keyIndex?: number) => void;
23+
private readonly onKeyRatchetComplete: (ratchetResult: RatchetResult, participantIdentity?: string, keyIndex?: number) => void;
1924

2025
public constructor() {
2126
super({ ratchetWindowSize: 10, keyringSize: 10 });
2227

23-
this.onKeyRatchetComplete = (material: ArrayBuffer, keyIndex?: number): void => {
24-
logger.debug(`key ratcheted event received for index `, keyIndex );
25-
this.rtcSession?.onOwnKeyRatcheted(material, keyIndex).catch((e) => {
26-
logger.error(
27-
`Failed to ratchet key for livekit room=${this.rtcSession?.room.roomId} keyIndex=${keyIndex}`,
28-
e,
29-
);
30-
});
28+
this.onKeyRatchetComplete = (ratchetResult: RatchetResult, participantIdentity?: string, keyIndex?: number): void => {
29+
logger.debug(`key ratcheted event received for ${participantId} at index ${keyIndex}`);
30+
this.rtcSession?.onKeyRatcheted(ratchetResult.chainKey, keyIndex);
3131
};
3232

33-
this.on(KeyProviderEvent.RatchetRequestCompleted, this.onKeyRatchetComplete);
33+
this.on(KeyProviderEvent.KeyRatcheted, this.onKeyRatchetComplete);
3434
}
3535

3636
public setRTCSession(rtcSession: MatrixRTCSession): void {

yarn.lock

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6980,10 +6980,10 @@ __metadata:
69806980
i18next-parser: "npm:^9.1.0"
69816981
jsdom: "npm:^26.0.0"
69826982
knip: "npm:^5.27.2"
6983-
livekit-client: "npm:^2.11.3"
6983+
livekit-client: "github:BillCarsonFr/client-sdk-js#4ac197085ee063f66b48d8ec24c88b2321fcbf9e"
69846984
lodash-es: "npm:^4.17.21"
69856985
loglevel: "npm:^1.9.1"
6986-
matrix-js-sdk: "github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c"
6986+
matrix-js-sdk: "github:matrix-org/matrix-js-sdk#44d1a860a1c56a0d4193aa7dcd09e10822398a4d"
69876987
matrix-widget-api: "npm:1.11.0"
69886988
normalize.css: "npm:^8.0.1"
69896989
observable-hooks: "npm:^4.2.3"
@@ -9350,9 +9350,9 @@ __metadata:
93509350
languageName: node
93519351
linkType: hard
93529352

9353-
"livekit-client@npm:^2.11.3":
9354-
version: 2.11.3
9355-
resolution: "livekit-client@npm:2.11.3"
9353+
"livekit-client@portal:/Users/valere/Documents/Dev/matrix/other/livekit-client::locator=element-call%40workspace%3A.":
9354+
version: 0.0.0-use.local
9355+
resolution: "livekit-client@portal:/Users/valere/Documents/Dev/matrix/other/livekit-client::locator=element-call%40workspace%3A."
93569356
dependencies:
93579357
"@livekit/mutex": "npm:1.1.1"
93589358
"@livekit/protocol": "npm:1.36.1"
@@ -9363,9 +9363,8 @@ __metadata:
93639363
tslib: "npm:2.8.1"
93649364
typed-emitter: "npm:^2.1.0"
93659365
webrtc-adapter: "npm:^9.0.1"
9366-
checksum: 10c0/d56444f31c107b46ccd5532038ac77bd21038042910619008267c17894f1d3f054262ae2354d89df6fe0ba325aba01909b0612ad4c290906487c40d91641f6e4
93679366
languageName: node
9368-
linkType: hard
9367+
linkType: soft
93699368

93709369
"locate-path@npm:^5.0.0":
93719370
version: 5.0.0
@@ -9574,9 +9573,9 @@ __metadata:
95749573
languageName: node
95759574
linkType: hard
95769575

9577-
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c":
9578-
version: 37.4.0
9579-
resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=19b1b901f575755d29d1fe03ca48cbf7c1cae05c"
9576+
"matrix-js-sdk@portal:/Users/valere/Documents/Dev/matrix/matrix-git-root/matrix-js-sdk::locator=element-call%40workspace%3A.":
9577+
version: 0.0.0-use.local
9578+
resolution: "matrix-js-sdk@portal:/Users/valere/Documents/Dev/matrix/matrix-git-root/matrix-js-sdk::locator=element-call%40workspace%3A."
95809579
dependencies:
95819580
"@babel/runtime": "npm:^7.12.5"
95829581
"@matrix-org/matrix-sdk-crypto-wasm": "npm:^14.0.1"
@@ -9593,9 +9592,8 @@ __metadata:
95939592
sdp-transform: "npm:^2.14.1"
95949593
unhomoglyph: "npm:^1.0.6"
95959594
uuid: "npm:11"
9596-
checksum: 10c0/68a30a113059ba052b2e66502abcd9805f9a18a1bfd1d209203d728b36508af257a57e6248fb237c7018c81bfbe1ec78fa17aea8968c8af0729ea935398dcf8b
95979595
languageName: node
9598-
linkType: hard
9596+
linkType: soft
95999597

96009598
"matrix-widget-api@npm:1.11.0":
96019599
version: 1.11.0

0 commit comments

Comments
 (0)