Cryptographically secure file transfer CLI tool
Go to file
2023-05-29 01:22:56 +03:00
.github release action & repo structure 2023-05-29 01:22:56 +03:00
docs filled docs with basics 2023-04-28 01:27:22 +03:00
src replace '~' with absolute path & removed unnecessary return traits 2023-05-28 19:27:17 +03:00
tests logging & included missing base64 encoding stage 2023-05-27 16:01:39 +03:00
.gitignore updated .gitignore 2023-04-01 20:31:22 +03:00
.pre-commit-config.yaml pre-commit hook for fmt & clippy 2023-04-12 03:42:58 +03:00
Cargo.lock logging & included missing base64 encoding stage 2023-05-27 16:01:39 +03:00
Cargo.toml logging & included missing base64 encoding stage 2023-05-27 16:01:39 +03:00
LICENSE Initial commit 2022-07-10 22:16:50 +03:00
README.md release action & repo structure 2023-05-29 01:22:56 +03:00

Cryptographic specifications

The initial key exchange is performed with elliptic-curve Diffie-Hellman. General data exchange is encrypted with AES-GCM. During regular communication payloads are Base64 encoded before being encrypted to prevent delimiter conflicts. SHA-256 hashes of files are compared to ensure data integrity.

Cellular networks

Most cellular ISP's tend to block port forwarding on CGNAT level, which makes it impossible to create inbound connections to such network without a VPN. Luckily many consumer VPNs and self-hosted solutions make port forwarding a trivial task. This is the main reason why the client must fetch information about the public IP from an external service (https://ipinfo.io/ip for IPv4 and https://ipv6.icanhazip.com for IPv6).

Usage

Work in progress. Will be completed when the current release is finished.

cargo build --release
./target/release/contego