Messaging Layer Security in Rust
RMLS is a Rust implementation of the Messaging Layer Security (MLS) protocol, as specified in RFC 9420. Messaging Layer Security (MLS) is a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.
RMLS is built and tested on the Github CI for the following rust targets:
The Github CI also builds (but doesn't test) the following rust targets:
RMLS does not implement its own cryptographic primitives. Instead, it relies on existing implementations of the cryptographic primitives, i.e., ring or RustCrypto. There are two cryptography providers implemented right now:
Other cryptography providers, like openssl or boring, are also possible, see CryptoProvider Trait for more details.
Dual licensing under both MIT and Apache-2.0 is the currently accepted standard by the Rust language community and has been used for both the compiler and many public libraries since (see https://doc.rust-lang.org/1.6.0/complement-project-faq.html#why-dual-mitasl2-license). In order to match the community standards, RMLS is using the dual MIT+Apache-2.0 license.
Contributors or Pull Requests are Welcome!!!