MLSClient

interface MLSClient

Inheritors

Functions

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

Add a user/client to an existing MLS group

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

Clear a pending commit which has not yet been accepted by the distribution service

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

Clear pending external commits

Link copied to clipboard
abstract suspend fun close()

Free up any resources and shutdown the client.

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

Signal that last sent commit was accepted by the distribution service

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

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 e2eiRotateAll(enrollment: E2EIClient, certificateChain: CertificateChain, newMLSKeyPackageCount: <Error class: unknown class>): RotateBundle

Generate new keypackages after E2EI certificate issued

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
abstract fun getDefaultCipherSuite(): <Error class: unknown class>

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 getMLSCredentials(): CredentialType

The MLS Credentials based on the E2EI State

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

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): CommitBundle

Request to join an existing conversation by external commit

Link copied to clipboard
abstract suspend fun joinConversation(groupId: MLSGroupId, epoch: <Error class: unknown class>): HandshakeMessage

Request to join an existing conversation

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

Current members of the group.

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

Request to merge an existing conversation by external commit

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>): CommitBundle

Remove a user/client from an existing MLS group

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

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)