Bläddra i källkod

e2ee: pass local and remote ids

currently unused, will allow moving to per-participant keys
dev1
Philipp Hancke 5 år sedan
förälder
incheckning
b0dbdb6c5a
2 ändrade filer med 12 tillägg och 5 borttagningar
  1. 5
    2
      JitsiConference.js
  2. 7
    3
      modules/e2ee/E2EEContext.js

+ 5
- 2
JitsiConference.js Visa fil

@@ -244,7 +244,10 @@ export default function JitsiConference(options) {
244 244
     this.maxFrameHeight = null;
245 245
 
246 246
     if (browser.supportsInsertableStreams()) {
247
-        this._e2eeCtx = new E2EEContext({ salt: this.options.name });
247
+        this._e2eeCtx = new E2EEContext({
248
+            myUserId: this.myUserId(),
249
+            salt: this.options.name
250
+        });
248 251
     }
249 252
 }
250 253
 
@@ -3448,7 +3451,7 @@ JitsiConference.prototype._setupReceiverE2EEForTrack = function(track) {
3448 3451
         const receiver = pc.findReceiverForTrack(track.track);
3449 3452
 
3450 3453
         if (receiver) {
3451
-            this._e2eeCtx.handleReceiver(receiver, track.getType());
3454
+            this._e2eeCtx.handleReceiver(receiver, track.getType(), track.id());
3452 3455
         } else {
3453 3456
             logger.warn(`Could not handle E2EE for remote ${track.getType()} track: receiver not found`);
3454 3457
         }

+ 7
- 3
modules/e2ee/E2EEContext.js Visa fil

@@ -32,6 +32,7 @@ export default class E2EEcontext {
32 32
      *        https://developer.mozilla.org/en-US/docs/Web/API/Pbkdf2Params
33 33
      *      this is easily available and the same for all participants.
34 34
      *      We currently do not enforce a minimum length of 16 bytes either.
35
+     * @param {string} options.myUserId- local client id. This is the local MUC resourcepart.
35 36
      */
36 37
     constructor(options) {
37 38
         this._options = options;
@@ -58,8 +59,9 @@ export default class E2EEcontext {
58 59
      *
59 60
      * @param {RTCRtpReceiver} receiver - The receiver which will get the decoding function injected.
60 61
      * @param {string} kind - The kind of track this receiver belongs to.
62
+     * @param {string} participantId - The (muc participant) id that this receiver belongs to.
61 63
      */
62
-    handleReceiver(receiver, kind) {
64
+    handleReceiver(receiver, kind, participantId) {
63 65
         if (receiver[kJitsiE2EE]) {
64 66
             return;
65 67
         }
@@ -71,7 +73,8 @@ export default class E2EEcontext {
71 73
         this._worker.postMessage({
72 74
             operation: 'decode',
73 75
             readableStream: receiverStreams.readableStream,
74
-            writableStream: receiverStreams.writableStream
76
+            writableStream: receiverStreams.writableStream,
77
+            participantId
75 78
         }, [ receiverStreams.readableStream, receiverStreams.writableStream ]);
76 79
     }
77 80
 
@@ -94,7 +97,8 @@ export default class E2EEcontext {
94 97
         this._worker.postMessage({
95 98
             operation: 'encode',
96 99
             readableStream: senderStreams.readableStream,
97
-            writableStream: senderStreams.writableStream
100
+            writableStream: senderStreams.writableStream,
101
+            participantId: this._options.myUserId
98 102
         }, [ senderStreams.readableStream, senderStreams.writableStream ]);
99 103
     }
100 104
 

Laddar…
Avbryt
Spara