Об этом проекте

Данный репозиторий содержит Dart-пакет, который является обёрткой над библиотекой OpenMLS на Rust и реализует протокол Messaging Layer Security (MLS) (RFC 9420) для масштабируемой сквозной шифрованной групповой рассылки сообщений. Он использует алгоритм TreeKEM для эффективного согласования групповых ключей, обеспечения прямой секретности и безопасности после компрометации. Библиотека поддерживает как классические, так и экспериментальные постквантовые наборы шифров, в том числе гибридные и основанные на решётках. Все состояние MLS шифруется в состоянии покоя: на нативных платформах используется SQLCipher, в WebAssembly — Web Crypto AES-256-GCM, а ключ шифрования хранится в защищённом хранилище платформы. Пакет оптимизирован для приложений на Flutter и работает на Android, iOS, macOS, Linux, Windows и в веб-среде (через dart2js). В состав пакета входит полный API для управления жизненным циклом групп (создание, присоединение, добавление/удаление участников, предложения, коммиты), обработка учётных данных (базовая и на основе X.509), а также простая интеграция через интерфейс `MlsEngine`. Разработчики могут генерировать пакеты ключей, управлять группами, шифровать и расшифровывать прикладные сообщения, а также экспортировать секреты, при этом реализация на Rust остаётся скрытой от них. Система сборки автоматически загружает предварительно скомпилированные нативные библиотеки, поэтому конечным пользователям не требуется локальный инструментарий Rust. К известным ограничениям относятся отсутствие поддержки цели dart2wasm в веб-среде и периодические пропуски хуков сборки при запуске Flutter-приложений, которые можно исправить выполнением полной сборки `flutter build web` или очисткой метки сборки. Эта библиотека идеально подходит для создания безопасных кроссплатформенных мессенджерских решений, которым требуется надёжное групповое шифрование и готовность к постквантовой эре.