Expand description
MLS groups (aka conversation) are the actual entities cementing all the participants in a conversation.
This table summarizes what operations are permitted on a group depending its state: (PP=pending proposal, PC=pending commit)
can I ? | 0 PP / 0 PC | 1+ PP / 0 PC | 0 PP / 1 PC | 1+ PP / 1 PC |
---|---|---|---|---|
encrypt | ✅ | ❌ | ❌ | ❌ |
handshake | ✅ | ✅ | ❌ | ❌ |
merge | ❌ | ❌ | ✅ | ✅ |
decrypt | ✅ | ✅ | ✅ | ✅ |
Modules§
- MLS defines 3 kind of messages: Proposal, Commits and Application messages. Since they can (should) be all encrypted we need to first decrypt them before deciding what to do with them.
Structs§
- This is a wrapper on top of the OpenMls’s MlsGroup, that provides Core Crypto specific functionality
Type Aliases§
- A unique identifier for a group/conversation. The identifier must be unique within a client.