| Crates.io | mls-spec |
| lib.rs | mls-spec |
| version | 1.0.5 |
| created_at | 2025-04-10 22:32:53.063029+00 |
| updated_at | 2025-09-25 15:07:22.020388+00 |
| description | This crate is a repository of MLS / RFC9420-related data structures. |
| homepage | |
| repository | https://github.com/OtaK/mls-spec |
| max_upload_size | |
| id | 1628999 |
| size | 237,352 |
This crate is a repository of MLS / RFC9420-related data structures.
It is designed to be used as a base for implementations, and contains all the wire-format related structures to be able to build a RFC9420-compliant implementation.
Here: https://docs.rs/mls-spec
All sensitive pieces of data are wrapped in a SensitiveBytes newtype, which takes care of being zeroization-on-drop
and has constant-time equality checks using subtle to make a best-effort attempt at protecting against side-channel attacks.
There's also some definitions for the follwing drafted extensions, enabled by the matching feature:
draft-ietf-mls-extensions @ draft-06
mls-extensions has content-advertisement parsing, this pulls an additional dependency (mediatype) with this feature flag: draft-ietf-mls-extensions-content-advertisement-parse. If you do the MIME parsing yourself, you can ignore this flag.draft-mahy-mls-ratchet-tree-options @ draft-01draft-mahy-mls-sd-cwt-credential @ draft-00draft-mahy-mls-semiprivatemessage @ draft-05draft-mularczyk-mls-splitcommit @ draft-00draft-kiefer-mls-light @ draft-02The following drafts were modified by extrapolating the current status of mls-extensions and the current status of the respective drafts:
DeriveExtensionSecret => DeriveApplicationSecret etc)
draft-kohbrok-mls-associated-parties @ draft-00++draft-ietf-mls-combiner @ draft-01++[supported|required]_wire_formats, those drafts will fall back to de facto WireFormats and have been modified in accordance
draft-pham-mls-additional-wire-formats @ draft-00++Please note that all the drafts are semver-excluded.
Additionally, this crate makes use of RustCrypto's tls_codec crate, and has a mls-rs compatibility layer (gated under the mls-rs-compat feature)
that allows to transcode mls-spec to mls-rs types and vice-versa.
Licensed under either of these: