Global override for whether the client should ever send encrypted messages to unverified devices. This provides the default for rooms which do not specify a value.
If true, all unverified devices will be blacklisted by default
Whether sendMessage in a room with unknown and unverified devices should throw an error and not send the message. This has 'Global' for symmetry with setGlobalBlacklistUnverifiedDevices but there is currently no room-level equivalent for this setting.
this is here, rather than in CryptoApi
, because I don't think we're
going to support it in the rust crypto implementation.
Get the verification level for a given device
TODO: define this better
user to be checked
device to be checked
Get the verification level for a given user
TODO: define this better
user to be checked
Decrypt a received event
a promise which resolves once we have finished decrypting. Rejects with an error if there is a problem decrypting the event.
Encrypt an event according to the configuration of the room.
Promise which resolves when the event has been encrypted, or null if nothing was needed
event to be sent
destination room.
Get a list containing all of the room keys
This should be encrypted before returning it to the user.
a promise which resolves to a list of session export objects
Discard any existing megolm session for the given room.
This will ensure that a new session is created on the next call to prepareToEncrypt, or the next time a message is sent.
This should not normally be necessary: it should only be used as a debugging tool if there has been a problem with encryption.
the room to discard sessions for
Get information about the encryption of an event
event to be checked
Called by the /sync loop whenever an m.room.encryption event is received.
This is called before RoomStateEvents are emitted for any of the events in the /sync response (even if the other events technically happened first). This works around a problem if the client uses a RoomStateEvent (typically a membership event) as a trigger to send a message in a new room (or one where encryption has been newly enabled): that would otherwise leave the crypto layer confused because it expects crypto to be set up, but it has not yet been.
in which the event was received
encryption event to be processed
Called by the /sync loop after each /sync response is processed.
Used to complete batch processing, or to initiate background processes
information about the completed sync.
Called by the /sync loop whenever there are incoming to-device messages.
The implementation may preprocess the received messages (eg, decrypt them) and return an updated list of messages for dispatch to the rest of the system.
Note that, unlike ToDeviceEvent events, this is called on the raw to-device messages, rather than the results of any decryption attempts.
A list of preprocessed to-device messages.
the received to-device messages
Handle the notification from /sync that device lists have been changed.
device_lists field from /sync
Called by the /sync loop when one time key counts and unused fallback key details are received.
Optional
oneTimeKeysCounts: Record<string, number>the received one time key counts
Optional
unusedFallbackKeys: string[]the received unused fallback keys
Checks if the user has previously published cross-signing keys
This means downloading the devicelist for the user and checking if the list includes the cross-signing pseudo-device.
true if the user has previously published cross-signing keys
Generated using TypeDoc
Common interface for the crypto implementations