Module group

Source
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§

GroupContext
8.1 Group Context
GroupEpoch
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.
InterimTranscriptHash
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.
MlsGroupCreateConfig
Specifies configuration for the creation of an MlsGroup. Refer to the User Manual for more information about the different configuration values.
MlsGroupCreateConfigBuilder
Builder for an MlsGroupCreateConfig.
MlsGroupJoinConfig
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, use MlsGroupCreateConfig.
MlsGroupJoinConfigBuilder
Builder struct for an MlsGroupJoinConfig.
ProcessedWelcome
A Welcome message that has been processed but not staged yet.
ProposalStore
A ProposalStore can store the standalone proposals that are received from the DS in between two commit messages.
PublicGroup
This struct holds all public values of an MLS group.
QueuedAddProposal
A queued Add proposal
QueuedProposal
Alternative representation of a Proposal, where the sender is extracted from the encapsulating PublicMessage and the ProposalRef is attached.
QueuedPskProposal
A queued PresharedKey proposal
QueuedRemoveProposal
A queued Remove proposal
QueuedUpdateProposal
A queued Update proposal
StagedCommit
Contains the changes from a commit to the group state.
StagedWelcome
A StagedWelcome can be inspected and then turned into a MlsGroup. This allows checking who authored the Welcome message.
WireFormatPolicy
Defines what wire format is desired for outgoing handshake messages. Note that application messages must always be encrypted.

Enums§

AddMembersError
Add members error
CommitBuilderStageError
Stage commit error
CommitToPendingProposalsError
Commit to pending proposals error
CreateAddProposalError
Create add proposal error
CreateCommitError
Create commit error
CreateGroupContextExtProposalError
Create group context ext proposal error
CreateMessageError
Create message error
EmptyInputError
EmptyInput error
ExportGroupInfoError
Errors that can happen when exporting a group info object.
ExportSecretError
Export secret error
ExternalCommitError
External Commit error
ExternalCommitValidationError
External Commit validaton error
GroupContextExtensionsProposalValidationError
Error validation a GroupContextExtensions proposal.
IncomingWireFormatPolicy
Defines what wire format is acceptable for incoming handshake messages. Note that application messages must always be encrypted.
LeaveGroupError
Leave group error
MergeCommitError
Error merging a commit.
MergePendingCommitError
Error merging pending commit
MlsGroupState
MlsGroupState determines the state of an MlsGroup. The different states and their transitions are as follows:
MlsGroupStateError
Group state error
NewGroupError
New group error
OutgoingWireFormatPolicy
Defines what wire format should be used for outgoing handshake messages. Note that application messages must always be encrypted.
PendingCommitState
Pending Commit state. Differentiates between Commits issued by group members and External Commits.
ProcessMessageError
Process message error
ProposalError
Proposal error
ProposalValidationError
Proposal validation error
ProposeAddMemberError
Propose add members error
ProposePskError
Propose PSK error
ProposeRemoveMemberError
Propose remove members error
ProposeSelfUpdateError
Propose self update error
RemoveMembersError
Remove members error
RemoveOperation
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.
RemoveProposalError
Remove proposal error
SelfUpdateError
Self update error
StageCommitError
Stage Commit error
ValidationError
Validation error
WelcomeError
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.