#chacha20 #chacha20-poly1305 #file-transfer

app portal-relay

The relay for Portal, a secure file transfer protocol

3 releases (breaking)

0.5.0 Oct 14, 2023
0.4.0 Apr 2, 2022
0.3.0 Mar 28, 2022

#15 in #chacha20

30 downloads per month

Apache-2.0 OR MIT

105KB
2K SLoC

portal-relay

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

For the client utility go to:

Installation

cargo install portal-relay

When run the binary listens on TCP port 13265 to broker connections between clients.

Diagram of Key Derivation

Demo

Creating a Service on Alpine

First build a static relay binary and transfer it to the alpine system, then add a user for the service:

cross build --bin portal-relay --target x86_64-unknown-linux-musl --release

# upload and copy the binary to /sbin/portal-relay
chmod +x /sbin/portal-relay
useradd relay -M -N --system -s /sbin/nologin

On alpine linux you can setup a simple service file vi /etc/init.d/relay:

#!/sbin/openrc-run

command=/sbin/portal-relay
command_user="relay"
supervisor="supervise-daemon"

depend() {
        need net localmount
}

Then add the service to the default run-level to start on boot:

chmod +x /etc/init.d/relay
rc-update add relay

List services to verify the relay was enabled:

rc-status

Then start the service:

/etc/init.d/relay start

Dependencies

~9–19MB
~243K SLoC