Skip to content

Destiny – Cross-platform Magic Wormhole graphical client

License

Notifications You must be signed in to change notification settings

LeastAuthority/destiny

Repository files navigation

Destiny

Cross-platform Magic Wormhole graphical client

An end-to-end encrypted app to share files without revealing your identity

Destiny is a secure file transfer application that allows people to transfer files without needing to reveal their identities to each other or the service provider. All files are end-to-end encrypted, meaning no one except the sender and the receiver can decrypt the contents. Users select a file on their device and then share the generated code with the intended recipient for safe delivery. No sign-up is needed.

Key security features:

  • Identity-less: no need to disclose identity information (such as name, email address, or phone number) to be able to transfer files.
  • End-to-end encryption: files are end-to-end encrypted and only the sender and recipient can read them.
  • Peer-to-peer file sharing: Destiny attempts to make a direct network connection to the other party. If both parties are on the same local network they should connect without any traffic leaving that network, for example. When this isn’t possible (e.g. if neither party has a public IP address) then our relay server is used (however, that server sees only encrypted packets).
  • Full-strength keys: although our codes are short and human-memorable, they are part of an online “Password Authenticated Key Exchange” (PAKE) which only allows a single guess – and yields a 256-bit full-strength symmetric key.

Based on the wormhole-william implementation of the Magic Wormhole protocol. This application relies on a plugin that wraps the wormhole-william client with a Dart API.

Supported platforms

  • Linux (amd64)
  • Windows
  • macOS
  • Android (Google Play & F-Droid)
  • iOS

Usage

Installation

You can find detailed instructions on how to install applications on various platforms

Windows, Linux, macOS files can be downloaded from the latest release.

Available on external stores:

Google Play store F-Droid  store App store

Alternatively, apps can be downloaded directly from GitHub release assets and installed manually.

Verification

We recommend verifying every downloaded file against the corresponding signature.

Please check our FAQ, Privacy Policy and Terms & Conditions to find more information before using applications.

Cloning

git clone --recurse-submodules [email protected]:LeastAuthority/destiny.git

Building

Dependencies

  • Go >= 1.19
  • Flutter >= 3.0.0
  • Android SDK for Android builds (>= SDK 24)

Unsigned release builds

Builds for magic-wormhole.io by default:

flutter build linux
flutter build apk
flutter build appbundle
flutter build macos
flutter build ipa

Builds for Least Authority servers:

flutter build linux -t lib/main_la.dart

Builds for local instances:

flutter build linux -t lib/main_local.dart

Checkout detailed instructions for building.

If flutter is not used for web application, worth to set to avoid additional files generation and static analysis warnings:

flutter config --no-enable-web

Checkout detailed instructions on how to sign releases](https://github.com/LeastAuthority/destiny/blob/main/docs/releases.md).

Starting the wormhole services locally

cd docker
docker-compose up -d

Known Issues:

Other configuration/ notes

  • To disable debug label on the app in the emulator, set debugShowCheckedModeBanner: false (two places)

  • iOS downloaded files are stored in the app/Documents folder, which is displayed in Files App as a dedicated application folder. If Files doesn't display the application folder, try restarting the phone. Note, that if the App is deleted, all downloaded files in the same App folder will be deleted too.

  • Delete default settings:

    • for macOS: defaults delete com.leastauthority.destiny