#mls #encryption #ietf #e2ee #rfc9420

openmls

A Rust 实现的 Messaging Layer Security (MLS) 协议,如 RFC 9420 所定义

12 个版本

0.6.0-pre.3 2024 年 8 月 22 日
0.6.0-pre.12024 年 7 月 24 日
0.5.0 2023 年 7 月 20 日
0.4.1 2022 年 6 月 7 日
0.2.0 2020 年 11 月 10 日

#113 in 加密学

Download history 2/week @ 2024-05-31 6/week @ 2024-06-07 13/week @ 2024-06-14 10/week @ 2024-06-21 1/week @ 2024-06-28 3/week @ 2024-07-05 1/week @ 2024-07-12 76/week @ 2024-07-19 42/week @ 2024-07-26 6/week @ 2024-08-02 2/week @ 2024-08-09 44/week @ 2024-08-16

122 每月下载量
用于 p2panda-rs

MIT 许可证

2MB
42K SLoC

OpenMLS

OpenMLS Chat OpenMLS List

Tests & Checks

codecov

Docs Book Rust Version

OpenMLS 是一个 Rust 实现的 Messaging Layer Security (MLS) 协议,如 RFC 9420 所指定。

它是一个可以作为需要消息端到端加密的应用程序构建块的软件库。它具有安全且易于使用的接口,隐藏了底层加密操作的复杂性。

支持的加密套件

  • MLS_128_HPKEX25519_AES128GCM_SHA256_Ed25519 (MTI)
  • MLS_128_DHKEMP256_AES128GCM_SHA256_P256
  • MLS_128_HPKEX25519_CHACHA20POLY1305_SHA256_Ed25519

支持的平台

OpenMLS 在以下 rust 目标上构建和测试。

  • x86_64-unknown-linux-gnu
  • i686-unknown-linux-gnu
  • x86_64-pc-windows-msvc
  • i686-pc-windows-msvc
  • x86_64-apple-darwin

不支持,但在 CI 上构建

Github CI 还构建(但未测试)以下 rust 目标。

  • 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

OpenMLS 支持 32 位平台及以上。

加密依赖

OpenMLS 没有实现自己的加密原语。相反,它依赖于 MLS 使用的现有加密原语的实现。目前实现了两种不同的加密提供者。但消费者可以提供自己的实现。有关详细信息,请参阅 traits

在 OpenMLS 上工作

有关在 OpenMLS 本身上工作的更多详细信息,请参阅 Developer.md

维护和支持

OpenMLS 由 Phoenix R&DCryspen 维护和开发。

致谢

Zulip 慷慨地为 OpenMLS 社区提供“Zulip Cloud Standard”层 Zulip 实例

依赖关系

~1.7–9MB
~163K SLoC