Expand description
§Message framing
This module contains framing-related operations for MLS messages, including validation logic.
The general structure of the framing process in OpenMLS closely follows the design described in Section 7 of the MLS specification. It can be visualized as follows:
Proposal Commit Application Data
| | |
+--------------+--------------+
|
V
FramedContent
| | -.
| | |
+--------+ | |
| | |
V | +-- Asymmetric
FramedContentAuthData | | Sign / Verify
| | |
+--------+ | |
| | |
V V -'
AuthenticatedContent
| -.
| |
| |
+--------+--------+ +-- Symmetric
| | | Protect / Unprotect
V V |
Welcome KeyPackage GroupInfo PublicMessage PrivateMessage -'
| | | | |
| | | | |
+----------+----------+----+--------+-----------------+
|
V
MLSMessage
MlsMessageIn
/MlsMessageOut
: Unified message type for incoming & outgoing MLS messagesApplicationMessage
: Application message received through aProcessedMessage
Modules§
- errors
- Framing errors.
Structs§
- Application
Message - Application message received through a ProcessedMessage.
- MlsMessage
In - Before use with the
MlsGroup
API, the message has to be unpacked viaextract
to yield itsMlsMessageBodyIn
. - MlsMessage
Out - An
MlsMessageOut
is typically returned from anMlsGroup
function and meant to be serialized and sent to the DS. - Private
Message PrivateMessage
is the framing struct for an encryptedPublicMessage
. This message format is meant to be sent to and received from the Delivery Service.- Private
Message In PrivateMessage
is the framing struct for an encryptedPublicMessage
. This message format is meant to be sent to and received from the Delivery Service.- Processed
Message - A message that has passed all syntax and semantics checks.
- Public
Message PublicMessage
is a framing structure for MLS messages. It can contain Proposals, Commits and application messages.- Public
Message In PublicMessageIn
is a framing structure for MLS messages. It can contain Proposals, Commits and application messages.
Enums§
- Content
Type - MlsMessage
Body In - MLSMessage (Body)
- MlsMessage
Body Out - MLSMessage (Body)
- Processed
Message Content - Content of a processed message.
- Protocol
Message - Enum containing a message for use with
process_message
and anMlsGroup
. BothPublicMessage
andPrivateMessage
implementInto<ProtocolMessage>
. - Sender
- All possible sender types according to the MLS protocol spec.
- Wire
Format - Wire format of MLS messages.