matrix-js-sdk

    Interface EncryptionConfig

    interface EncryptionConfig {
        keyRotationGracePeriodMs?: number;
        makeKeyDelay?: number;
        manageMediaKeys?: boolean;
        updateEncryptionKeyThrottle?: number;
        useKeyDelay?: number;
    }
    Index

    Properties

    keyRotationGracePeriodMs?: number

    Sometimes it is necessary to rotate the encryption key after a membership update. For performance reasons we might not want to rotate the key immediately but allow future memberships to use the same key. If 5 people join in a row in less than 5 seconds, we don't want to rotate the key for each of them. If 5 people leave in a row in less than 5 seconds, we don't want to rotate the key for each of them.

    makeKeyDelay?: number

    The delay (in milliseconds) after a member leaves before we create and publish a new key, because people tend to leave calls at the same time.

    • Not used by the new encryption manager.
    manageMediaKeys?: boolean

    If true, generate and share a media key for this participant, and emit MatrixRTCSessionEvent.EncryptionKeyChanged when media keys for other participants become available.

    updateEncryptionKeyThrottle?: number

    The minimum time (in milliseconds) between each attempt to send encryption key(s). e.g. if this is set to 1000, then we will send at most one key event every second.

    • Not used by the new encryption manager.
    useKeyDelay?: number

    The delay (in milliseconds) between sending a new key and starting to encrypt with it. This gives others a chance to receive the new key to minimize the chance they get media they can't decrypt.

    The higher this value is, the better it is for existing members as they will have a smoother experience. But it impacts new joiners: They will always have to wait useKeyDelay before being able to decrypt the media (as it will be encrypted with the new key after the delay only), even if the key is already arrived before the delay.

    MMNEPVFCICPMFPCPTTAAATR