#file-transfer #chacha20-poly1305 #wormhole #chacha20 #poly1305 #spake2

app portal-client

A Secure file transfer utility, written in Rust. The protocol utilizes SPAKE2 for key negotiation over an insecure channel, and ChaCha20Poly1305 Authenticated Encryption to encrypt the file with the derived shared symmetric key. This enables two peers to transfer a file over any channel without needing to trust the intermediary relay.

4 releases (breaking)

0.5.0 Oct 14, 2023
0.4.0 Apr 2, 2022
0.3.0 Mar 28, 2022
0.2.0 Oct 8, 2020
0.1.0 Oct 2, 2020

#335 in Cryptography

Apache-2.0 OR MIT

405KB
9K SLoC

portal-client

This crate contains the client-side application for Portal - An encrypted file transfer utility.

Note: The peer must connect to the same portal-relay as you. The default relay is portal-relay.landhb.dev but can be changed in your config. On linux the config is most commonly located at ~/.config/portal/portal.toml.

Installation

cargo install portal-client

Send a file

portal send /path/to/file

Recv a file

portal recv

Diagram of Key Derivation

Demo

Dependencies

~10–21MB
~265K SLoC