Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/webrtc-rs/rmls
Messaging Layer Security in Rust
https://github.com/webrtc-rs/rmls
Last synced: about 2 months ago
JSON representation
Messaging Layer Security in Rust
- Host: GitHub
- URL: https://github.com/webrtc-rs/rmls
- Owner: webrtc-rs
- License: apache-2.0
- Created: 2023-06-03T18:21:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-10T21:48:19.000Z (over 1 year ago)
- Last Synced: 2024-04-13T22:12:23.650Z (9 months ago)
- Language: Rust
- Size: 4.27 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
Messaging Layer Security in RustTable of Content
- [Overview](#overview)
- [Supported CipherSuites](#supported-ciphersuites)
- [Supported Platforms](#supported-platforms)
- [Cryptography Dependencies](#cryptography-dependencies)
- [Open Source License](#open-source-license)
- [Contributing](#contributing)## Overview
*RMLS* is a Rust implementation of the Messaging Layer Security (MLS) protocol, as specified in [RFC 9420](https://datatracker.ietf.org/doc/html/rfc9420).
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.## Supported CipherSuites
- MLS_128_HPKEX25519_AES128GCM_SHA256_Ed25519
- MLS_128_DHKEMP256_AES128GCM_SHA256_P256
- MLS_128_HPKEX25519_CHACHA20POLY1305_SHA256_Ed25519## Supported Platforms
*RMLS* is built and tested on the Github CI for the following rust targets:
- x86_64-unknown-linux-gnu
- i686-unknown-linux-gnu
- x86_64-pc-windows-msvc
- i686-pc-windows-msvc
- x86_64-apple-darwinThe Github CI also builds (but doesn't test) the following rust targets:
- aarch64-apple-darwin
- aarch64-unknown-linux-gnu
- aarch64-linux-android
- aarch64-apple-ios
- aarch64-apple-ios-sim
- wasm32-unknown-unknown
- armv7-linux-androideabi
- x86_64-linux-android
- i686-linux-android## Cryptography Dependencies
*RMLS* does not implement its own cryptographic primitives. Instead, it relies
on existing implementations of the cryptographic primitives, i.e., [ring](https://github.com/briansmith/ring) or [RustCrypto](https://github.com/RustCrypto). There
are two cryptography providers implemented right now:- [ring](https://github.com/briansmith/ring) based crypto provider
- [RustCrypto](https://github.com/RustCrypto) based crypto providerOther cryptography providers, like [openssl](https://github.com/sfackler/rust-openssl) or
[boring](https://github.com/cloudflare/boring), are also possible, see [CryptoProvider Trait](https://docs.rs/rmls/latest/rmls/crypto/provider/trait.CryptoProvider.html) for more
details.## Open Source License
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 ).
In order to match the community standards, *RMLS* is using the dual MIT+Apache-2.0 license.## Contributing
Contributors or Pull Requests are Welcome!!!