Protocols

The following protocols are available globally.

  • Defines the protocol for a client.

    See more

    Declaration

    Swift

    public protocol CoreCryptoProtocol
  • A Client identifier

    A unique identifier for clients. A client is an identifier for each App a user is using, such as desktop, mobile, etc. Users can have multiple clients. More information here

    See more

    Declaration

    Swift

    public protocol ClientIdProtocol : AnyObject, Sendable
  • A unique identifier for a single conversation.

    The backend provides an opaque string identifying a new conversation. Construct an instance of this newtype to pass that identifier to Rust.

    See more

    Declaration

    Swift

    public protocol ConversationIdProtocol : AnyObject, Sendable
  • CoreCrypto wraps around MLS and Proteus implementations and provides a transactional interface for each.

    See more

    Declaration

    Swift

    public protocol CoreCryptoProtocol : AnyObject, Sendable
  • The CoreCryptoContext holds the primary CoreCrypto APIs.

    An instance of this struct is provided to the function handed to CoreCrypto::transaction.

    Every mutable operation is done through this struct. This struct will buffer all operations in memory and when [TransactionContext::finish] is called, it will persist the data into the keystore.

    See more

    Declaration

    Swift

    public protocol CoreCryptoContextProtocol : AnyObject, Sendable
  • This trait is used to provide a callback mechanism to hook up the respective platform logging system.

    See more

    Declaration

    Swift

    public protocol CoreCryptoLogger : AnyObject, Sendable
  • DatabaseKeyProtocol From WireCoreCryptoUniffi

    The key used to encrypt the database.

    Declaration

    Swift

    public protocol DatabaseKeyProtocol : AnyObject, Sendable
  • Wire end to end identity solution for fetching a x509 certificate which identifies a client.

    See [core_crypto::e2e_identity::E2eiEnrollment]

    See more

    Declaration

    Swift

    public protocol E2eiEnrollmentProtocol : AnyObject, Sendable
  • An EpochObserver is notified whenever a conversation’s epoch changes.

    See more

    Declaration

    Swift

    public protocol EpochObserver : AnyObject, Sendable
  • The raw public key of an external sender.

    This can be used to initialize a subconversation.

    See more

    Declaration

    Swift

    public protocol ExternalSenderKeyProtocol : AnyObject, Sendable
  • MLS Group Information

    This is used when joining by external commit. It can be found within the GroupInfoBundle within a CommitBundle.

    See more

    Declaration

    Swift

    public protocol GroupInfoProtocol : AnyObject, Sendable
  • An HistoryObserver is notified whenever a new history client is created.

    See more

    Declaration

    Swift

    public protocol HistoryObserver : AnyObject, Sendable
  • A signed object describing a client’s identity and capabilities.

    Includes a public key that can be used to encrypt to that client. Other clients can use a client’s KeyPackage to introduce that client to a new group.

    See more

    Declaration

    Swift

    public protocol KeyPackageProtocol : AnyObject, Sendable
  • 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.

    See more

    Declaration

    Swift

    public protocol MlsTransport : AnyObject, Sendable
  • A secret key derived from the group secret.

    This is intended to be used for AVS.

    See more

    Declaration

    Swift

    public protocol SecretKeyProtocol : AnyObject, Sendable
  • A TLS-serialized Welcome message.

    This structure is defined in RFC 9420: https://www.rfc-editor.org/rfc/rfc9420.html#joining-via-welcome-message.

    See more

    Declaration

    Swift

    public protocol WelcomeProtocol : AnyObject, Sendable