Skip to content

Commit 28246ef

Browse files
authored
Update RTCSession configuration to non deprecated names. (#3267)
* Update RTCSession configuration to non deprecated names. * bump js-sdk * es2024 and array buffer adaptions * Alternative without `createKeyMaterialFromBuffer`
1 parent 0110465 commit 28246ef

File tree

5 files changed

+34
-26
lines changed

5 files changed

+34
-26
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
"livekit-client": "^2.11.3",
103103
"lodash-es": "^4.17.21",
104104
"loglevel": "^1.9.1",
105-
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c",
105+
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac",
106106
"matrix-widget-api": "1.11.0",
107107
"normalize.css": "^8.0.1",
108108
"observable-hooks": "^4.2.3",

src/e2ee/matrixKeyProvider.ts

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ 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 } from "livekit-client";
8+
import { BaseKeyProvider } from "livekit-client";
99
import { logger } from "matrix-js-sdk/lib/logger";
1010
import {
1111
type MatrixRTCSession,
@@ -44,20 +44,29 @@ export class MatrixKeyProvider extends BaseKeyProvider {
4444
encryptionKeyIndex: number,
4545
participantId: string,
4646
): void => {
47-
createKeyMaterialFromBuffer(encryptionKey).then(
48-
(keyMaterial) => {
49-
this.onSetEncryptionKey(keyMaterial, participantId, encryptionKeyIndex);
50-
51-
logger.debug(
52-
`Sent new key to livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`,
53-
);
54-
},
55-
(e) => {
56-
logger.error(
57-
`Failed to create key material from buffer for livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`,
58-
e,
59-
);
60-
},
61-
);
47+
crypto.subtle
48+
.importKey("raw", encryptionKey, "HKDF", false, [
49+
"deriveBits",
50+
"deriveKey",
51+
])
52+
.then(
53+
(keyMaterial) => {
54+
this.onSetEncryptionKey(
55+
keyMaterial,
56+
participantId,
57+
encryptionKeyIndex,
58+
);
59+
60+
logger.debug(
61+
`Sent new key to livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`,
62+
);
63+
},
64+
(e) => {
65+
logger.error(
66+
`Failed to create key material from buffer for livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`,
67+
e,
68+
);
69+
},
70+
);
6271
};
6372
}

src/rtcSessionHelpers.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,9 @@ export async function enterRTCSession(
121121
...(useDeviceSessionMemberEvents !== undefined && {
122122
useLegacyMemberEvents: !useDeviceSessionMemberEvents,
123123
}),
124-
membershipServerSideExpiryTimeout:
124+
delayedLeaveEventDelayMs:
125125
matrixRtcSessionConfig?.membership_server_side_expiry_timeout,
126-
membershipKeepAlivePeriod:
127-
matrixRtcSessionConfig?.membership_keep_alive_period,
126+
networkErrorRetryMs: matrixRtcSessionConfig?.membership_keep_alive_period,
128127
makeKeyDelay: matrixRtcSessionConfig?.key_rotation_on_leave_delay,
129128
useExperimentalToDeviceTransport,
130129
},

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"target": "es2022",
44
"module": "es2022",
55
"jsx": "react-jsx",
6-
"lib": ["es2022", "dom", "dom.iterable"],
6+
"lib": ["es2024", "dom", "dom.iterable"],
77

88
// From Matrix-JS-SDK
99
"strict": true,

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7007,7 +7007,7 @@ __metadata:
70077007
livekit-client: "npm:^2.11.3"
70087008
lodash-es: "npm:^4.17.21"
70097009
loglevel: "npm:^1.9.1"
7010-
matrix-js-sdk: "github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c"
7010+
matrix-js-sdk: "github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac"
70117011
matrix-widget-api: "npm:1.11.0"
70127012
normalize.css: "npm:^8.0.1"
70137013
observable-hooks: "npm:^4.2.3"
@@ -9610,9 +9610,9 @@ __metadata:
96109610
languageName: node
96119611
linkType: hard
96129612

9613-
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c":
9614-
version: 37.4.0
9615-
resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=19b1b901f575755d29d1fe03ca48cbf7c1cae05c"
9613+
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac":
9614+
version: 37.5.0
9615+
resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=457a300c9594dc24ba2f05cc16180112b9e8d0ac"
96169616
dependencies:
96179617
"@babel/runtime": "npm:^7.12.5"
96189618
"@matrix-org/matrix-sdk-crypto-wasm": "npm:^14.0.1"
@@ -9629,7 +9629,7 @@ __metadata:
96299629
sdp-transform: "npm:^2.14.1"
96309630
unhomoglyph: "npm:^1.0.6"
96319631
uuid: "npm:11"
9632-
checksum: 10c0/68a30a113059ba052b2e66502abcd9805f9a18a1bfd1d209203d728b36508af257a57e6248fb237c7018c81bfbe1ec78fa17aea8968c8af0729ea935398dcf8b
9632+
checksum: 10c0/121ecbe4ab6c3ce3fe399ab468958211b0c1c565d6da718903ccc0abc4af7341c764ebee07a553a4222b338bd8665de9fa50bb34a247555b908c4c2b46a97deb
96339633
languageName: node
96349634
linkType: hard
96359635

0 commit comments

Comments
 (0)