mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-05-16 10:47:49 +00:00
e2ee: stage 2
Adapt to E2EE changes in lib-jitsi-meet. Notably:
---
e2ee: introduce per-participant randomly generated keys
This the second stage in our E2EE journey.
Instead of using a single pre-shared passphrase for deriving the key used for
E2EE, we now establish a secure E2EE communication channel amongst peers.
This channel is implemented using libolm, using XMPP groupchat or JVB channels
as the transport.
Once the secure E2EE channel has been established each participant will generate
a random 32 byte key and exchange it over this channel.
Keys are rotated (well, just re-created at the moment) when a participant joins
or leaves.
---
This commit is contained in:
committed by
Saúl Ibarra Corretgé
parent
2b4f33bef8
commit
7cafa205ee
@@ -4,8 +4,8 @@ import { getCurrentConference } from '../base/conference';
|
||||
import { getLocalParticipant, participantUpdated } from '../base/participants';
|
||||
import { MiddlewareRegistry, StateListenerRegistry } from '../base/redux';
|
||||
|
||||
import { SET_E2EE_KEY } from './actionTypes';
|
||||
import { setE2EEKey } from './actions';
|
||||
import { TOGGLE_E2EE } from './actionTypes';
|
||||
import { toggleE2EE } from './actions';
|
||||
import logger from './logger';
|
||||
|
||||
/**
|
||||
@@ -16,18 +16,18 @@ import logger from './logger';
|
||||
*/
|
||||
MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
switch (action.type) {
|
||||
case SET_E2EE_KEY: {
|
||||
case TOGGLE_E2EE: {
|
||||
const conference = getCurrentConference(getState);
|
||||
|
||||
if (conference) {
|
||||
logger.debug(`New E2EE key: ${action.key}`);
|
||||
conference.setE2EEKey(action.key);
|
||||
logger.debug(`E2EE will be ${action.enabled ? 'enabled' : 'disabled'}`);
|
||||
conference.toggleE2EE(action.enabled);
|
||||
|
||||
// Broadccast that we enabled / disabled E2EE.
|
||||
const participant = getLocalParticipant(getState);
|
||||
|
||||
dispatch(participantUpdated({
|
||||
e2eeEnabled: Boolean(action.key),
|
||||
e2eeEnabled: action.enabled,
|
||||
id: participant.id,
|
||||
local: true
|
||||
}));
|
||||
@@ -48,6 +48,6 @@ StateListenerRegistry.register(
|
||||
state => getCurrentConference(state),
|
||||
(conference, { dispatch }, previousConference) => {
|
||||
if (previousConference) {
|
||||
dispatch(setE2EEKey(undefined));
|
||||
dispatch(toggleE2EE(false));
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user