44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
|
<div align="center" style="text-align:center">
|
||
|
<picture>
|
||
|
<source media="(prefers-color-scheme: light)" srcset="docs/contego-light.png">
|
||
|
<img src="docs/contego-dark.png" width="800">
|
||
|
</picture>
|
||
|
</div>
|
||
|
|
||
|
## 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.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
Build the optimized binary with `cargo build --release`.
|
||
|
|
||
|
### Server
|
||
|
|
||
|
```
|
||
|
Usage: contego host [OPTIONS] --key <KEY> <--source <SOURCE>|--files <FILES>...>
|
||
|
|
||
|
Options:
|
||
|
-k, --key <KEY> Access key
|
||
|
-s, --source <SOURCE> Path to a source file (alternative to --files)
|
||
|
-f, --files <FILES>... Paths to shareable files (alternative to --source)
|
||
|
-p, --port <PORT> Host port [default: 8080]
|
||
|
-6, --ipv6 IPv6 instead of IPv4
|
||
|
-c, --chunksize <CHUNKSIZE> Transmit chunksize in bytes [default: 8192]
|
||
|
-l, --local Host locally
|
||
|
-h, --help Print help
|
||
|
|
||
|
```
|
||
|
|
||
|
### Client
|
||
|
|
||
|
```
|
||
|
Usage: contego connect --addr <ADDR> --out <OUT> --key <KEY>
|
||
|
|
||
|
Options:
|
||
|
-a, --addr <ADDR> IP address of the instance
|
||
|
-o, --out <OUT> Path to an output folder
|
||
|
-k, --key <KEY> Access key
|
||
|
-h, --help Print help
|
||
|
```
|