Expand description
Group API for MLS
This module contains the API to interact with groups.
Modules
MlsGroup errors
Processing functions of an MlsGroup
for incoming messages.
Structs
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.
A group ID. The group ID is chosen by the creator of the group and should be globally unique.
This struct implements the MLS leaf node and contains a KeyPackage
and
potentially a corresponding HpkePrivateKey
.
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.
Specifies the configuration parameters for a MlsGroup
. Refer to
the User Manual for more information about the different configuration values.
Builder for an MlsGroupConfig
.
This struct implements the MLS parent node. It contains its public key, parent hash and unmerged leaves. Additionally, it may contain the private key corresponding to the public key.
A ProposalStore can store the standalone proposals that are received from the DS in between two commit messages.
A queued Add proposal
Alternative representation of a Proposal, where the sender is extracted from the encapsulating MlsPlaintext and the ProposalRef is attached.
A queued PresharedKey proposal
A queued Remove proposal
A queued Update proposal
Contains the changes from a commit to the group state.
Defines what wire format is desired for outgoing handshake messages. Note that application messages must always be encrypted.
Enums
Add members error
Commit to pending proposals error
Create commit error
Create message error
EmptyInput error
Export public group state error
Export secret error
External Commit error
External Commit validaton error
Defines what wire format is acceptable for incoming handshake messages. Note that application messages must always be encrypted.
Enum
that indicates whether the inner group state has been modified since the last time it was persisted.
InnerState::Changed
indicates that the state has changed and that [.save()
] should be called.
InnerState::Persisted
indicates that the state has not been modified and therefore doesn’t need to be persisted.
Leave group error
MlsGroupState
determines the state of an MlsGroup
. The different
states and their transitions are as follows:
Group state error
New group error
Container enum for leaf and parent nodes.
Defines what wire format should be used for outgoing handshake messages. Note that application messages must always be encrypted.
Parse message error
Pending Commit state. Differentiates between Commits issued by group members and External Commits.
Proposal validation error
Propose add members error
Propose remove members error
Propose self update error
Remove members error
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.
Self update error
Stage Commit error
Unverified message error
Validation error
Welcome error
Constants
Incoming wire formats can be mixed while outgoing wire formats are always ciphertext.
Incoming wire formats can be mixed while outgoing wire formats are always plaintext.
Incoming and outgoing wire formats are always ciphertext.
Incoming and outgoing wire formats are always plaintext.
All valid wire format policy combinations.