Available on 32-bit or 64-bit only.
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
MLSMessageMlsMessageIn/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
MlsGroupAPI, the message has to be unpacked viaextractto yield itsMlsMessageBodyIn. - MlsMessage
Out - An
MlsMessageOutis typically returned from anMlsGroupfunction and meant to be serialized and sent to the DS. - Private
Message PrivateMessageis the framing struct for an encryptedPublicMessage. This message format is meant to be sent to and received from the Delivery Service.- Private
Message In PrivateMessageis 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 PublicMessageis a framing structure for MLS messages. It can contain Proposals, Commits and application messages.- Public
Message In PublicMessageInis a framing structure for MLS messages. It can contain Proposals, Commits and application messages.- Unverified
Message - Partially checked and potentially decrypted message (if it was originally encrypted).
Use this to inspect the
Credentialof the message sender and the optionalaadif the original message was encrypted. TheOpenMlsSignaturePublicKeyis used to verify the signature of the message.
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_messageand anMlsGroup. BothPublicMessageandPrivateMessageimplementInto<ProtocolMessage>. - Sender
- All possible sender types according to the MLS protocol spec.
- Wire
Format - Wire format of MLS messages.