lib-jitsi-meet
    Preparing search index...

    This class implements an End-to-End Encrypted communication channel between every two peers in the conference. This channel uses libolm to achieve E2EE.

    The created channel is then used to exchange the secret key that each participant will use to encrypt the actual media (see E2EEContext).

    A simple JSON message based protocol is implemented, which follows a request - response model:

    • session-init: Initiates an olm session establishment procedure. This message will be sent by the participant who just joined, to everyone else.
    • session-ack: Completes the olm session etablishment. This messsage may contain ancilliary encrypted data, more specifically the sender's current key.
    • key-info: Includes the sender's most up to date key information.
    • key-info-ack: Acknowledges the reception of a key-info request. In addition, it may contain the sender's key information, if available.
    • error: Indicates a request processing error has occurred.

    These requessts and responses are transport independent. Currently they are sent using XMPP MUC private messages.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _conf: any
    _idKeys: any
    _init: Deferred<any>
    _mediaKey: boolean | Uint8Array<ArrayBufferLike>
    _mediaKeyIndex: number
    _olmAccount: any
    _reqs: Map<any, any>
    _sessionInitialization: Deferred<any>
    events: {
        PARTICIPANT_E2EE_CHANNEL_READY: string;
        PARTICIPANT_KEY_UPDATED: string;
        PARTICIPANT_SAS_AVAILABLE: string;
        PARTICIPANT_SAS_READY: string;
        PARTICIPANT_VERIFICATION_COMPLETED: string;
    }

    Accessors

    Methods

    • Computes the commitment.

      Parameters

      • pubKey: any
      • data: any

      Returns any

    • Builds and sends an error message to the target participant.

      Parameters

      • participant: JitsiParticipant

        The target participant.

      • error: string

        The error message.

      Returns void

    • Internal helper to send the given object to the given participant ID. This function merely exists so the transport can be easily swapped. Currently messages are transmitted via XMPP MUC private messages.

      Parameters

      • data: any

        The data that will be sent to the target participant.

      • participantId: string

        ID of the target participant.

      Returns void

    • Frees the olmData session for the given participant.

      Parameters

      • participant: any

      Returns void

    • Starts new olm sessions with every other participant that has the participantId "smaller" the localParticipantId.

      Returns Promise<void>

    • Returns the number of listeners for the specified event.

      Parameters

      • OptionaleventName: string

        The name of the event.

      Returns number

      • The number of listeners for the event.
    • Sends sacMac if channel verification waas successful.

      Parameters

      • participant: any
      • isVerified: any

      Returns void

    • Attaches a handler for events (e.g., "participant joined") in the conference. All possible events are defined in JitsiConferenceEvents.

      Parameters

      • eventId: string

        The event ID.

      • handler: EventListener

        Handler for the event.

      Returns void

    • Updates the current participant key.

      Parameters

      • key: boolean | Uint8Array<ArrayBufferLike>

        The new key.

      Returns number

    • Updates the current participant key and distributes it to all participants in the conference by sending a key-info message.

      Parameters

      • key: boolean | Uint8Array<ArrayBufferLike>

        The new key.

      Returns Promise<number>