Skip to content
Snippets Groups Projects
Select Git revision
0 results

XXClient-quick-start-guide.md

Blame
  • XXClient-quick-start-guide.md 2.14 KiB

    XXClient Quick Start Guide

    Add XXClient library as a dependency to your project using Swift Package Manager.

    ▶️ Instantiating cMix

    You can use a convenient CMixManager wrapper to manage cMix stored on disk:

    let cMixManager: CMixManager = .live(
      passwordStorage: .init(
        save: { password in
          // securely save provided password
        },
        load: {
          // load securely stored password
        }
      )
    )
    
    let cMix: CMix
    if cMixManager.hasStorage() {
      cMix = try cMixManager.load()
    } else {
      cMix = try cMixManager.create()
    }

    Check out included example iOS application for the PasswordStorage implementation that uses the iOS keychain.

    ▶️ Connecting to the network

    Start network follower:

    try cMix.startNetworkFollower(timeoutMS: 10_000)

    Wait until connected:

    let isNetworkHealthy = try cMix.waitForNetwork(timeoutMS: 30_000)

    ▶️ Making a new reception identity

    Use the cMix to make a new reception identity:

    let myIdentity = try cMix.makeReceptionIdentity()

    ▶️ Create new E2E

    let login: Login = .live
    let e2e = try login(
      cMixId: cMix.getId(),
      identity: myIdentity
    )

    ▶️ Connecting to remote

    Perform auth key negotiation with the given recipient to get the Connection:

    let connection = try cMix.connect(
      withAuthentication: false,
      e2eId: e2e.getId(),
      recipientContact: ...
    )

    Pass true for the withAuthentication parameter if you want to prove id ownership to remote as well.