Expand description
Group API for MLS
This module contains the API to interact with groups.
Modules§
- process
- This module contains the implementation of the processing functions for public groups.
Structs§
- Group
Context - 8.1 Group Context
- Group
Epoch - Group epoch. Internally this is stored as a
u64
. The group epoch is incremented with every valid Commit that is merged into the group state. - GroupId
- A group ID. The group ID is chosen by the creator of the group and should be globally unique.
- Interim
Transcript Hash - This is a wrapper type, because we can’t implement the storage traits on
Vec<u8>
. - Member
- A member in the group is identified by this
Member
struct. - MlsGroup
- A
MlsGroup
represents an MLS group with a high-level API. The API exposes high level functions to manage a group by adding/removing members, get the current member list, etc. - MlsGroup
Create Config - Specifies configuration for the creation of an
MlsGroup
. Refer to the User Manual for more information about the different configuration values. - MlsGroup
Create Config Builder - Builder for an
MlsGroupCreateConfig
. - MlsGroup
Join Config - The
MlsGroupJoinConfig
contains all configuration parameters that are relevant to group operation at runtime. It is used to configure the group’s behaviour when joining an existing group. To configure a newly created group, useMlsGroupCreateConfig
. - MlsGroup
Join Config Builder - Builder struct for an
MlsGroupJoinConfig
. - Processed
Welcome - A
Welcome
message that has been processed but not staged yet. - Proposal
Store - A ProposalStore can store the standalone proposals that are received from the DS in between two commit messages.
- Public
Group - This struct holds all public values of an MLS group.
- Queued
AddProposal - A queued Add proposal
- Queued
Proposal - Alternative representation of a Proposal, where the sender is extracted from the encapsulating PublicMessage and the ProposalRef is attached.
- Queued
PskProposal - A queued PresharedKey proposal
- Queued
Remove Proposal - A queued Remove proposal
- Queued
Update Proposal - A queued Update proposal
- Staged
Commit - Contains the changes from a commit to the group state.
- Staged
Welcome - A
StagedWelcome
can be inspected and then turned into aMlsGroup
. This allows checking who authored the Welcome message. - Wire
Format Policy - Defines what wire format is desired for outgoing handshake messages. Note that application messages must always be encrypted.
Enums§
- AddMembers
Error - Add members error
- Commit
Builder Stage Error - Stage commit error
- Commit
ToPending Proposals Error - Commit to pending proposals error
- Create
AddProposal Error - Create add proposal error
- Create
Commit Error - Create commit error
- Create
Group Context ExtProposal Error - Create group context ext proposal error
- Create
Message Error - Create message error
- Empty
Input Error - EmptyInput error
- Export
Group Info Error - Errors that can happen when exporting a group info object.
- Export
Secret Error - Export secret error
- External
Commit Error - External Commit error
- External
Commit Validation Error - External Commit validaton error
- Group
Context Extensions Proposal Validation Error - Error validation a GroupContextExtensions proposal.
- Incoming
Wire Format Policy - Defines what wire format is acceptable for incoming handshake messages. Note that application messages must always be encrypted.
- Leave
Group Error - Leave group error
- Merge
Commit Error - Error merging a commit.
- Merge
Pending Commit Error - Error merging pending commit
- MlsGroup
State MlsGroupState
determines the state of anMlsGroup
. The different states and their transitions are as follows:- MlsGroup
State Error - Group state error
- NewGroup
Error - New group error
- Outgoing
Wire Format Policy - Defines what wire format should be used for outgoing handshake messages. Note that application messages must always be encrypted.
- Pending
Commit State - Pending Commit state. Differentiates between Commits issued by group members and External Commits.
- Process
Message Error - Process message error
- Proposal
Error - Proposal error
- Proposal
Validation Error - Proposal validation error
- Propose
AddMember Error - Propose add members error
- Propose
PskError - Propose PSK error
- Propose
Remove Member Error - Propose remove members error
- Propose
Self Update Error - Propose self update error
- Remove
Members Error - Remove members error
- Remove
Operation - Helper
enum
that classifies the kind of remove operation. This can be used to better interpret the semantic value of a remove proposal that is covered in a Commit message. - Remove
Proposal Error - Remove proposal error
- Self
Update Error - Self update error
- Stage
Commit Error - Stage Commit error
- Validation
Error - Validation error
- Welcome
Error - Welcome error
Constants§
- MIXED_
CIPHERTEXT_ WIRE_ FORMAT_ POLICY - Incoming wire formats can be mixed while outgoing wire formats are always ciphertext.
- MIXED_
PLAINTEXT_ WIRE_ FORMAT_ POLICY - Incoming wire formats can be mixed while outgoing wire formats are always plaintext.
- PURE_
CIPHERTEXT_ WIRE_ FORMAT_ POLICY - Incoming and outgoing wire formats are always ciphertext.
- PURE_
PLAINTEXT_ WIRE_ FORMAT_ POLICY - Incoming and outgoing wire formats are always plaintext.
- WIRE_
FORMAT_ POLICIES - All valid wire format policy combinations.