Package-level declarations

Types

Link copied to clipboard
data class AcmeChallenge(delegate: <Error class: unknown class>)

AcmeChallenge

Link copied to clipboard
data class AcmeDirectory(delegate: <Error class: unknown class>)

AcmeDirectory

Link copied to clipboard
value class AvsSecret(val value: ByteArray) : Uniffi

AVS secret

Link copied to clipboard
data class BufferedDecryptedMessage(val message: ByteArray?, val isActive: Boolean, val commitDelay: Long?, val senderClientId: ClientId?, val hasEpochChanged: Boolean, val identity: WireIdentity, val crlNewDistributionPoints: CrlDistributionPoints?)

Type safe recursion of DecryptedMessage

Link copied to clipboard

Ciphersuite

Link copied to clipboard
value class Ciphersuites(value: Set<Ciphersuite>)

Ciphersuites

Link copied to clipboard
value class ClientId(val value: String) : FfiType<String, <Error class: unknown class>>

Client ID

Link copied to clipboard
data class CommitBundle(val commit: MlsMessage, val welcome: Welcome?, val groupInfoBundle: GroupInfoBundle, val crlNewDistributionPoints: CrlDistributionPoints?)

Data shape for a MLS generic commit + optional bundle (aka stapled commit & welcome)

Link copied to clipboard
class CoreCrypto(cc: <Error class: unknown class>)

The type representing a CoreCrypto client

Link copied to clipboard
class CoreCryptoContext(cc: <Error class: unknown class>)

The CoreCrypto context used within a transaction

Link copied to clipboard

The type representing a CoreCrypto error.

Link copied to clipboard

The logger interface

Link copied to clipboard

Defines the log level for CoreCrypto

Link copied to clipboard

Credential type

Link copied to clipboard
value class CrlDistributionPoints(val value: Set<URI>) : FfiType<Set<URI>, List<String>>

CRL distribution points

Link copied to clipboard
data class CRLRegistration(val dirty: Boolean, val expiration: Long?)

Supporting struct for CRL registration result

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

Configuration of MLS group

Link copied to clipboard
value class DatabaseKey(bytes: ByteArray)

Represents a CoreCrypto database key

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

Represents the potential items a consumer might require after passing us an encrypted message we have decrypted for him

Link copied to clipboard

Indicates the standalone status of a device Credential in a MLS group at a moment T. This does not represent the states where a device is not using MLS or is not using end-to-end identity

Link copied to clipboard

Indicates the state of a Conversation regarding end-to-end identity. Note: this does not check pending state (pending commit, pending proposals) so it does not consider members about to be added/removed

Link copied to clipboard
data class E2eiDumpedPkiEnv(var rootCa: String, var intermediates: List<String>, var crls: List<String>)

E2eiDumpedPkiEnv

Link copied to clipboard
class E2EIEnrollment(delegate: <Error class: unknown class>)

Represents an E2EI enrollment

Link copied to clipboard
Link copied to clipboard
interface EpochObserver

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

Link copied to clipboard

ExternallyGeneratedHandle

Link copied to clipboard
value class ExternalSenderKey(val value: ByteArray) : Uniffi

External sender key

Link copied to clipboard
value class GroupInfo(val value: ByteArray) : Uniffi

Group info

Link copied to clipboard
data class GroupInfoBundle(val encryptionType: MlsGroupInfoEncryptionType, val ratchetTreeType: MlsRatchetTreeType, val payload: GroupInfo)
Link copied to clipboard
Link copied to clipboard
sealed class MlsException : Exception

The type representing an MLS error

Link copied to clipboard
value class MLSGroupId(val value: ByteArray) : Uniffi

MLS group ID

Link copied to clipboard

The type of group info encryption.

Link copied to clipboard
value class MLSKeyPackage(val value: ByteArray) : Uniffi

Key package

Link copied to clipboard
value class MLSKeyPackageRef(val value: ByteArray) : Uniffi

Key package reference

Link copied to clipboard
value class MlsMessage(val value: ByteArray) : Uniffi

MLS message

Link copied to clipboard

The ratchet tree type.

Link copied to clipboard
interface MlsTransport

You must implement this interface and pass the implementing object to CoreCrypto.provideTransport. CoreCrypto uses it to communicate with the delivery service.

Link copied to clipboard

Returned by MlsTransport callbacks.

Link copied to clipboard

Encrypting policy in MLS group

Link copied to clipboard
data class NewAcmeAuthz(delegate: <Error class: unknown class>)

NewAcmeAuthz

Link copied to clipboard
data class NewAcmeOrder(delegate: <Error class: unknown class>)

NewAcmeOrder

Link copied to clipboard
value class PlaintextMessage(val value: ByteArray) : Uniffi

Plaintext message

Link copied to clipboard
data class PreKey(val id: UShort, val data: ByteArray)

Prekey

Link copied to clipboard
value class ProposalRef(val value: ByteArray) : Uniffi

Proposal reference

Link copied to clipboard

The type representing a Proteus error

Link copied to clipboard
typealias SessionId = String
Link copied to clipboard
value class SignaturePublicKey(val value: ByteArray) : Uniffi

Signature public key

Link copied to clipboard
value class Welcome(val value: ByteArray) : Uniffi

Welcome message

Link copied to clipboard
data class WelcomeBundle(val id: MLSGroupId, val crlNewDistributionPoints: CrlDistributionPoints?)

Contains everything client needs to know after decrypting an (encrypted) Welcome message

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

Represents a client using Wire's end-to-end identity solution

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

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

Functions

Link copied to clipboard
suspend fun migrateDatabaseKeyTypeToBytes(name: 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

Initializes the logging inside Core Crypto. Not required to be called and by default there will be no logging.

Link copied to clipboard

Set maximum log level of logs which are forwarded to the CoreCryptoLogger.

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 group ID

Link copied to clipboard

Construct an MLS message

Link copied to clipboard

Construct a plaintext message