MLSClient

interface MLSClient

Inheritors

Functions

Link copied to clipboard
abstract suspend fun addMember(groupId: MLSGroupId, membersKeyPackages: List<MLSKeyPackage>): List<String>?

Add a user/client to an existing MLS group

Link copied to clipboard
abstract suspend fun close()

Free up any resources and shutdown the client.

Link copied to clipboard
abstract suspend fun commitPendingProposals(groupId: MLSGroupId)

Create a commit for any pending proposals

Link copied to clipboard
abstract suspend fun conversationEpoch(groupId: MLSGroupId): <Error class: unknown class>

Query the current epoch of a conversation

Link copied to clipboard
abstract suspend fun conversationExists(groupId: MLSGroupId): Boolean

Query if a conversation exists

Link copied to clipboard
abstract suspend fun createConversation(groupId: MLSGroupId, externalSenders: ByteArray)

Create a new MLS conversation

Link copied to clipboard
abstract suspend fun decryptMessage(groupId: MLSGroupId, message: ApplicationMessage): List<DecryptedMessageBundle>

Decrypt an application message or a handshake message

Link copied to clipboard
abstract suspend fun deriveSecret(groupId: MLSGroupId, keyLength: <Error class: unknown class>): ByteArray

Derive a secret key from the current MLS group state

Link copied to clipboard
abstract suspend fun e2eiMlsInitOnly(enrollment: E2EIClient, certificateChain: CertificateChain): List<String>?

Init MLSClient after enrollment

Link copied to clipboard
abstract suspend fun e2eiNewActivationEnrollment(displayName: String, handle: String, teamId: String?, expiry: <Error class: unknown class>): E2EIClient

Enroll Wire E2EIdentity Client for E2EI when MLSClient already initialized

Link copied to clipboard
abstract suspend fun e2eiNewRotateEnrollment(displayName: String?, handle: String?, teamId: String?, expiry: <Error class: unknown class>): E2EIClient

Enroll Wire E2EI Enrollment Client for renewing certificate

Link copied to clipboard
abstract suspend fun e2eiRotateGroups(groupList: List<MLSGroupId>)

Rotates credentials for each conversation

Link copied to clipboard
abstract suspend fun encryptMessage(groupId: MLSGroupId, message: PlainMessage): ApplicationMessage

Encrypt a message for distribution in a group

Link copied to clipboard
abstract suspend fun generateKeyPackages(amount: Int): List<ByteArray>

Generate a fresh set of key packages.

Link copied to clipboard

Get the default ciphersuite for the client. the Default ciphersuite is set when creating the mls client.

Link copied to clipboard
abstract suspend fun getDeviceIdentities(groupId: MLSGroupId, clients: List<CryptoQualifiedClientId>): List<WireIdentity>

Get the identity of given clients in the given conversation

Link copied to clipboard
abstract suspend fun getExternalSenders(groupId: MLSGroupId): ExternalSenderKey

Get External Senders of an MLS conversation

Link copied to clipboard
abstract suspend fun getPublicKey(): <Error class: unknown class><ByteArray, MLSCiphersuite>

Public key of the client's identity.

Link copied to clipboard
abstract suspend fun getUserIdentities(groupId: MLSGroupId, users: List<CryptoQualifiedID>): Map<String, List<WireIdentity>>

Get the identity of given users in the given conversation

Link copied to clipboard
abstract suspend fun isE2EIEnabled(): Boolean

The E2EI State for the current MLS Client

Link copied to clipboard
abstract suspend fun isGroupVerified(groupId: MLSGroupId): E2EIConversationState

Conversation E2EI Verification Status

Link copied to clipboard
abstract suspend fun joinByExternalCommit(publicGroupState: ByteArray): WelcomeBundle

Request to join an existing conversation by external commit

Link copied to clipboard
abstract suspend fun members(groupId: MLSGroupId): List<CryptoQualifiedClientId>

Current members of the group.

Link copied to clipboard
abstract suspend fun processWelcomeMessage(message: WelcomeMessage): WelcomeBundle

Process an incoming welcome message

Link copied to clipboard
abstract suspend fun removeMember(groupId: MLSGroupId, members: List<CryptoQualifiedClientId>)

Remove a user/client from an existing MLS group

Link copied to clipboard
abstract suspend fun removeStaleKeyPackages()

Deletes the stale key packages locally

Link copied to clipboard
abstract suspend fun saveX509Credential(enrollment: E2EIClient, certificateChain: CertificateChain): List<String>?

Save the X509 Credential for the given enrollment

Link copied to clipboard
abstract suspend fun updateKeyingMaterial(groupId: MLSGroupId)

Update your keying material for an existing conversation you're a member of.

Link copied to clipboard
abstract suspend fun validKeyPackageCount(): <Error class: unknown class>

Number of valid key packages which haven't been consumed

Link copied to clipboard
abstract suspend fun wipeConversation(groupId: MLSGroupId)