openmls library
Dart wrapper for OpenMLS — a Rust implementation of the Messaging Layer Security (MLS) protocol (RFC 9420)
This is the main entry point for openmls.
Getting Started
Add this package to your pubspec.yaml:
dependencies:
openmls: ^1.0.0
Native libraries are downloaded automatically during build via Dart Build Hooks.
Usage
import 'package:openmls/openmls.dart';
void main() async {
await Openmls.init();
// ... use openmls APIs
}
Platform Support
- Linux (x86_64, arm64)
- macOS (arm64, x86_64)
- Windows (x86_64)
- Android (arm64-v8a, armeabi-v7a, x86_64)
- iOS (device arm64, simulator arm64/x86_64)
- Web (WASM)
Classes
- AddMembersResult
- CommitResult
- CreateGroupResult
- CreateMessageResult
- ExternalJoinResult
- FlexibleCommitOptions
- Options for the flexible commit builder.
- GroupConfigurationResult
- JoinGroupResult
- KeyPackageOptions
- Options for creating a key package with the builder API.
- KeyPackageResult
- LeaveGroupResult
- MlsCapabilities
- Capabilities advertised by a leaf node.
- MlsCredential
- MlsEngine
- MlsExtension
- An MLS extension (type + data).
- MlsGroupConfig
- Group configuration parameters.
- MlsGroupContextInfo
- Full group context information.
- MlsLeafNodeInfo
- Full information about the own leaf node.
- MlsMemberInfo
- Information about a group member.
- MlsPendingProposalInfo
- Information about a pending proposal in the group.
- MlsSignatureKeyPair
- Openmls
- Main API class for openmls.
- ProcessedMessageInspectResult
- ProcessedMessageResult
- ProposalResult
- SecureBytes
- Wrapper for sensitive byte data with automatic zeroing on finalization.
- StagedCommitInfo
- Information about a staged commit before merging.
- WelcomeInspectResult
- Information extracted from a Welcome message before joining.
Enums
- MlsCiphersuite
- MLS ciphersuite selection.
- MlsProposalType
- MLS proposal types.
- MlsWireFormatPolicy
- Wire format policy for MLS messages.
- ProcessedMessageType
- Type of a processed incoming message.
Mixins
- OpenmlsBase
- Base mixin for openmls operations.
Extensions
- SecureUint8List on Uint8List
- Extension for zeroing sensitive Uint8List data.
Functions
-
mlsMessageContentType(
{required List< int> messageBytes}) → String - Get the content type of an MLS protocol message as a string.
-
mlsMessageExtractEpoch(
{required List< int> messageBytes}) → BigInt - Extract the epoch from an MLS protocol message.
-
mlsMessageExtractGroupId(
{required List< int> messageBytes}) → Uint8List - Extract the group ID from an MLS protocol message.
-
serializeSigner(
{required MlsCiphersuite ciphersuite, required List< int> privateKey, required List<int> publicKey}) → Uint8List -
Serialize a
SignatureKeyPairto JSON bytes including private key. -
supportedCiphersuites(
) → List< MlsCiphersuite> - Returns the list of supported ciphersuites.