mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-22 15:22:07 +00:00
Merge branch 'master' into ep/profile-badges
This commit is contained in:
commit
1d148109d8
140 files changed
+4408
-611
No files matched your search
@@ -90,7 +90,7 @@ The syntax of compressed message is defined by the following ABNF notation:
|
||||
compressedMessage = %s"X" 1*15780 OCTET; compressed message data
|
||||
```
|
||||
|
||||
Compressed message is required to fit into 13388 bytes, accounting for agent overhead (see Protocol's maxCompressedMsgLength).
|
||||
Compressed message is required to fit into 15602 bytes, or into 13380 bytes for a connection with PQ encryption, accounting for agent overhead (see Protocol's maxEncodedMsgLength and maxEncodedMsgLengthPQ).
|
||||
|
||||
The actual JSON message is required to fit into 15610 bytes, accounting for group message forwarding (x.grp.msg.forward) overhead (see Protocol's maxEncodedMsgLength).
|
||||
|
||||
@@ -264,7 +264,7 @@ Currently members can have one of four roles - `owner`, `admin`, `member` and `o
|
||||
|
||||
`x.grp.direct.inv` message is sent to a group member to propose establishing a direct connection between members, thus creating a contact with another member.
|
||||
|
||||
`x.grp.msg.forward` message is sent by inviting member to forward messages between introduced members, while they are connecting.
|
||||
`x.grp.msg.forward` message is sent by inviting member to forward messages between introduced members, while they are connecting. This message MUST NOT contain another `x.grp.msg.forward` message.
|
||||
|
||||
### Channels: relay-mediated groups
|
||||
|
||||
@@ -286,6 +286,12 @@ These message are used for WebRTC calls:
|
||||
|
||||
4. `x.call.end` message is sent to notify the other party that the call is terminated.
|
||||
|
||||
Call messages have their own version, independent of the chat protocol version. The initiating client sends the range of call versions it supports in `callVRange` property of `x.call.inv`. The receiving client chooses the highest version supported by both clients and sends it in `callVersion` property of `x.call.offer`. The initiating client rejects the offer if this version is not in the range it sent. A missing range or version means version 1.
|
||||
|
||||
Media frames are encrypted with AES-256-GCM using the key agreed via X25519 DH keys in `x.call.inv` and `x.call.offer`:
|
||||
- version 1: the key is the DH shared secret.
|
||||
- version 2: the key is 32 bytes of HKDF-SHA512 output, using the DH shared secret as input key material, call ID as salt and `SimpleXCallMediaKey` as info.
|
||||
|
||||
## Threat model
|
||||
|
||||
This threat model complements SMP, XFTP, push notifications and XRCP protocols threat models, as well as the channel-specific threat model:
|
||||
|
||||
Reference in new issue
Block a user