Package-level declarations

Types

Link copied to clipboard
data class AcmeChallenge(var delegate: ByteArray, var url: String, var target: String)

For creating a challenge.

Link copied to clipboard
data class AcmeDirectory(var newNonce: String, var newAccount: String, var newOrder: String, var revokeCert: String)

Holds URLs of all the standard ACME endpoint supported on an ACME server.

Link copied to clipboard
data class BufferedDecryptedMessage(var message: ByteArray?, var isActive: Boolean, var commitDelay: ULong?, var senderClientId: ClientId?, var hasEpochChanged: Boolean, var identity: WireIdentity, var crlNewDistributionPoints: List<String>?) : Disposable

to avoid recursive structs

Link copied to clipboard
data class BuildMetadata(var timestamp: String, var cargoDebug: String, var cargoFeatures: String, var optLevel: String, var targetTriple: String, var gitBranch: String, var gitDescribe: String, var gitSha: String, var gitDirty: String)

Metadata describing the conditions of the build of this software.

Link copied to clipboard

MLS ciphersuites.

Link copied to clipboard

A Client identifier

Link copied to clipboard

A Client identifier

Link copied to clipboard
data class CommitBundle(var welcome: Welcome?, var commit: ByteArray, var groupInfo: GroupInfoBundle, var encryptedMessage: ByteArray?) : Disposable

Information returned when a commit is created.

Link copied to clipboard
data class ConversationConfiguration(var ciphersuite: Ciphersuite?, var externalSenders: List<ExternalSenderKey>, var custom: CustomConfiguration) : Disposable

The configuration parameters for a group/conversation

Link copied to clipboard

A unique identifier for a single conversation.

Link copied to clipboard

A unique identifier for a single conversation.

Link copied to clipboard

A high-level wrapper around a CoreCrypto client as emitted by Uniffi.

Link copied to clipboard

A CoreCryptoCommand has an execute method which accepts a CoreCryptoContext and returns nothing.

Link copied to clipboard

A CoreCryptoCommand has an execute method which accepts a CoreCryptoContext and returns nothing.

Link copied to clipboard

The CoreCryptoContext holds the primary CoreCrypto APIs.

Link copied to clipboard

The CoreCryptoContext holds the primary CoreCrypto APIs.

Link copied to clipboard
Link copied to clipboard

CoreCrypto wraps around MLS and Proteus implementations and provides a transactional interface for each.

Link copied to clipboard

CoreCrypto wraps around MLS and Proteus implementations and provides a transactional interface for each.

Link copied to clipboard

This trait is used to provide a callback mechanism to hook up the respective platform logging system.

Link copied to clipboard

This trait is used to provide a callback mechanism to hook up the respective platform logging system.

Link copied to clipboard

Defines the log level for a CoreCrypto

Link copied to clipboard

Type of Credential

Link copied to clipboard
data class CrlRegistration(var dirty: Boolean, var expiration: ULong?)

Supporting struct for CRL registration result

Link copied to clipboard
data class CustomConfiguration(var keyRotationSpan: Duration?, var wirePolicy: WirePolicy?)

see core_crypto::MlsCustomConfiguration

Link copied to clipboard

The database acting as a core crypto keystore.

Link copied to clipboard

The database acting as a core crypto keystore.

Link copied to clipboard

The key used to encrypt the database.

Link copied to clipboard

The key used to encrypt the database.

Link copied to clipboard
data class DecryptedMessage(var message: ByteArray?, var isActive: Boolean, var commitDelay: ULong?, var senderClientId: ClientId?, var hasEpochChanged: Boolean, var identity: WireIdentity, var bufferedMessages: List<BufferedDecryptedMessage>?, var crlNewDistributionPoints: List<String>?) : Disposable

A decrypted message and various associated metadata

Link copied to clipboard

Indicates the standalone status of a device Credential in a MLS group at a moment T.

Link copied to clipboard
interface Disposable
Link copied to clipboard

Indicates the state of a Conversation regarding end-to-end identity.

Link copied to clipboard

Wire end to end identity solution for fetching a x509 certificate which identifies a client.

Link copied to clipboard

Wire end to end identity solution for fetching a x509 certificate which identifies a client.

Link copied to clipboard
interface EpochObserver

An EpochObserver is notified whenever a conversation's epoch changes.

Link copied to clipboard

An EpochObserver is notified whenever a conversation's epoch changes.

Link copied to clipboard

The raw public key of an external sender.

Link copied to clipboard

The raw public key of an external sender.

Link copied to clipboard
typealias FfiConverterTypeMlsTransportData = FfiConverterByteArray
Link copied to clipboard

MLS Group Information

Link copied to clipboard
data class GroupInfoBundle(var encryptionType: MlsGroupInfoEncryptionType, var ratchetTreeType: MlsRatchetTreeType, var payload: GroupInfo) : Disposable

A GroupInfo with some metadata

Link copied to clipboard

MLS Group Information

Link copied to clipboard
interface HistoryObserver

An HistoryObserver is notified whenever a new history client is created.

Link copied to clipboard

An HistoryObserver is notified whenever a new history client is created.

Link copied to clipboard
data class HistorySecret(var clientId: ClientId, var data: ByteArray) : Disposable

A HistorySecret encodes sufficient client state that it can be used to instantiate an ephemeral client.

Link copied to clipboard
Link copied to clipboard

A signed object describing a client's identity and capabilities.

Link copied to clipboard

A signed object describing a client's identity and capabilities.

Link copied to clipboard
Link copied to clipboard
sealed class MlsException : Exception

MLS produces these kinds of error

Link copied to clipboard
interface MlsTransport

Used by core crypto to send commits or application messages to the delivery service. This trait must be implemented before calling any functions that produce commits.

Link copied to clipboard

Typealias from the type name used in the UDL file to the builtin type. This is needed because the UDL type name is used in function/method signatures. It's also what we have an external type that references a custom type.

Link copied to clipboard

Used by core crypto to send commits or application messages to the delivery service. This trait must be implemented before calling any functions that produce commits.

Link copied to clipboard

MLS transport may or may not succeeed; this response indicates to CC the outcome of the transport attempt.

Link copied to clipboard
data class NewAcmeAuthz(var identifier: String, var keyauth: String?, var challenge: AcmeChallenge)

Result of an authorization creation.

Link copied to clipboard
data class NewAcmeOrder(var delegate: ByteArray, var authorizations: List<String>)

Result of an order creation.

Link copied to clipboard
data class ProteusAutoPrekeyBundle(var id: UShort, var pkb: ByteArray)

Encapsulates a prekey id and a cbor-serialized prekey

Link copied to clipboard

Proteus produces these kinds of error

Link copied to clipboard

A secret key derived from the group secret.

Link copied to clipboard

A secret key derived from the group secret.

Link copied to clipboard

A TLS-serialized Welcome message.

Link copied to clipboard
data class WelcomeBundle(var id: ConversationId, var crlNewDistributionPoints: List<String>?) : Disposable

see core_crypto::WelcomeBundle

Link copied to clipboard

A TLS-serialized Welcome message.

Link copied to clipboard
data class WireIdentity(var clientId: String, var status: DeviceStatus, var thumbprint: String, var credentialType: CredentialType, var x509Identity: X509Identity?)

Represents the identity claims identifying a client Those claims are verifiable by any member in the group

Link copied to clipboard

See core_crypto::MlsWirePolicy

Link copied to clipboard
data class X509Identity(var handle: String, var displayName: String, var domain: String, var certificate: String, var serialNumber: String, var notBefore: Instant, var notAfter: Instant)

Represents the parts of crate::WireIdentity that are specific to a X509 certificate (and not a Basic one).

Properties

Link copied to clipboard

The default ciphersuite: MLS_128_DHKEMX25519_AES128GCM_SHA256_ED25519

Link copied to clipboard

The default set of ciphersuites: [MLS_128_DHKEMX25519_AES128GCM_SHA256_ED25519]

Link copied to clipboard

Default Conversation Configuration

Link copied to clipboard

Default credential type

Link copied to clipboard

Default Custom Configuration

Functions

Link copied to clipboard

Returns build data for CoreCrypto

Link copied to clipboard

Get an instance of the default ciphersuite.

Link copied to clipboard

Construct a ciphersuite enum instance from its discriminant.

Link copied to clipboard

Instantiate a history client.

Link copied to clipboard
suspend fun coreCryptoNew(database: Database): CoreCryptoFfi

Free function to construct a new CoreCryptoFfi instance.

Link copied to clipboard

Create an in-memory Database whose data will be lost when the instance is dropped.

Link copied to clipboard

Wrap a CoreCrypto instance in a CoreCryptoClient instance. Should largely be invisible to end-users.

Link copied to clipboard
suspend fun migrateDatabaseKeyTypeToBytes(path: String, oldKey: String, newKey: DatabaseKey)

Updates the key of the CoreCrypto database. To be used only once, when moving from CoreCrypto <= 5.x to CoreCrypto 6.x.

Link copied to clipboard
suspend fun openDatabase(name: String, key: DatabaseKey): Database

Open or create a Database.

Link copied to clipboard

Initializes the logger

Link copied to clipboard

Set maximum log level forwarded to the logger

Link copied to clipboard

Construct an AVS secret

Link copied to clipboard

Construct a client ID

Link copied to clipboard

Construct an external sender ID

Link copied to clipboard

Construct a GroupInfo from bytes

Link copied to clipboard

Construct a KeyPackage from bytes

Link copied to clipboard

Construct a Welcome

Link copied to clipboard
suspend fun updateDatabaseKey(name: String, oldKey: DatabaseKey, newKey: DatabaseKey)

Updates the key of the CoreCrypto database.

Link copied to clipboard

The version of core-crypto.