Documentation Index
Fetch the complete documentation index at: https://mintlify.com/openmls/openmls/llms.txt
Use this file to discover all available pages before exploring further.
Credential validation
Acceptable presented identifiers
The application using MLS is responsible for specifying which identifiers it finds acceptable for each member in a group. Following the model that RFC6125 describes for TLS, the application maintains a list of “reference identifiers” for the members of a group, and the credentials provide “presented identifiers”. A member of a group is authenticated by first validating that the member’s credential legitimately represents some presented identifiers, and then ensuring that the reference identifiers for the member are authenticated by those presented identifiers.See RFC9420, Section 5.3.1 for the complete specification.
Validity of updated presented identifiers
In cases where a member’s credential is being replaced, such as the Update and Commit cases, the Authentication Service (AS) must also verify that the set of presented identifiers in the new credential is valid as a successor to the set of presented identifiers in the old credential, according to the application’s policy.Application ID is not authenticated by AS
Applications must not rely on the data in anapplication_id extension as if it were authenticated by the Authentication Service, and should gracefully handle cases where the identifier presented is not unique.
See RFC9420, Section 5.3.3 for more details.
LeafNode validation
Specifying the maximum total acceptable lifetime
Applications must define a maximum total lifetime that is acceptable for a LeafNode, and reject any LeafNode where the total lifetime is longer than this duration. See RFC9420, Section 7.2 for the complete specification.PrivateMessage validation
Structure of AAD is application-defined
It is up to the application to decide what authenticated data to provide and how much padding to add to a given message (if any). The overall size of the AAD and ciphertext must fit within the limits established for the group’s AEAD algorithm in CFRG-AEAD-LIMITS.The application must validate whether the AAD adheres to the prescribed format.
Proposal validation
When processing a commit, the application must ensure that the application-specific semantic checks for the validity of the committed proposals are performed. This should be done on theStagedCommit. Here’s an example: