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 | ✅ | ✅ | ✅ | ✅ |
Structs§
- Buffered
Decrypted Message - Type safe recursion of DecryptedMessage
- Commit
Bundle - Returned when a commit is created
- Conversation
- A Conversation exposes the read-only interface of an MLS conversation.
- Conversation
Configuration - The configuration parameters for a group/conversation
- Conversation
Id - A unique identifier for a group/conversation. The identifier must be unique within a client.
- Conversation
IdRef - Reference to a ConversationId.
- Conversation
Mut - A mutable view of an MLS conversation.
- Custom
Configuration - The configuration parameters for a group/conversation which are not handled natively by openmls
- Decrypted
Message - Represents the potential items a consumer might require after passing us an encrypted message we have decrypted for him
- External
Sender Key - The raw public key of an external sender.
- Group
Info Bundle - A [GroupInfo] with metadata
- Secret
Key - A secret key derived from the group secret.
- Welcome
Message - A Welcome Message as defined in RFC 9420.
Enums§
- Error
- Group
Info Encryption Type - GroupInfoEncryptionType
- Group
Info Payload - Represents the byte array in GroupInfoBundle
- Ratchet
Tree Type - RatchetTreeType
- Wire
Policy - Wrapper over [WireFormatPolicy]