2023-04-28 00:27:22 +02:00
< div align = "center" style = "text-align:center" >
< picture >
2023-05-29 00:22:56 +02:00
< source media = "(prefers-color-scheme: dark)" srcset = "https://github.com/17ms/contego/blob/master/.github/docs/contego-dark.png" >
< img src = "https://github.com/17ms/contego/blob/master/.github/docs/contego-light.png" width = "800" >
2023-04-28 00:27:22 +02:00
< / picture >
< / div >
2022-07-16 21:09:28 +02:00
2023-05-06 19:49:39 +02:00
< p align = "center" >
< a href = "https://github.com/17ms/contego/actions/workflows/cargo-checkmate.yaml" > < img src = "https://img.shields.io/github/actions/workflow/status/17ms/contego/cargo-checkmate.yaml?branch=master" > < / a >
2023-04-01 19:25:17 +02:00
< a href = "https://github.com/17ms/contego/tags" > < img src = "https://img.shields.io/github/v/tag/17ms/contego" > < / a >
< a href = "https://opensource.org/licenses/MIT" > < img src = "https://img.shields.io/github/license/17ms/contego" > < / a >
2022-07-16 21:09:28 +02:00
< / p >
2023-04-28 00:27:22 +02: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.
## Usage
2023-05-29 16:52:51 +02:00
Check [releases ](https://github.com/17ms/contego/releases ) for an up-to-date executables or build from source with `cargo build --release` .
2023-04-28 00:27:22 +02:00
2023-05-29 16:52:51 +02:00
### 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
2023-04-28 00:27:22 +02:00
```