Share files via a bridge server using TCP over SSL and end-to-end encryption.
Project description
filebridging
Share files via a bridge server using TCP over SSL and end-to-end encryption.
Requirements
Python3.8+ is needed for this package. You may find it here.
OpenSSL 1.1.1+ is required as well to handle SSL connection and end-to-end cryptography. On Windows, installing git for Windows will install OpenSSL as well.
Usage
If you need a virtual environment, create it.
python3.8 -m venv env;
alias pip="env/bin/pip";
alias python="env/bin/python";
Install filebridging and read the help.
pip install filebridging
python -m filebridging.server --help
python -m filebridging.client --help
Examples
-
Client-server example
# 3 distinct tabs python -m filebridging.server --host localhost --port 5000 --certificate ~/.ssh/server.crt --key ~/.ssh/server.key python -m filebridging.client s --host localhost --port 5000 --certificate ~/.ssh/server.crt --token 12345678 --password supersecretpasswordhere --path ~/file_to_send python -m filebridging.client r --host localhost --port 5000 --certificate ~/.ssh/server.crt --token 12345678 --password supersecretpasswordhere --path ~/Downloads
-
Client-client example
# 2 distinct tabs python -m filebridging.client s --host localhost --port 5000 --certificate ~/.ssh/server.crt --key ~/.ssh/private.key --token 12345678 --password supersecretpasswordhere --path ~/file_to_send --standalone python -m filebridging.client r --host localhost --port 5000 --certificate ~/.ssh/server.crt --token 12345678 --password supersecretpasswordhere --path ~/Downloads
The receiver client may be standalone as well: just add the
--key
parameter (for SSL-secured sessions) and the--standalone
flag. -
Configuration file example
#!/bin/python host = "www.example.com" port = 5000 certificate = "/path/to/public.crt" key = "/path/to/private.key" action = 'r' password = 'verysecretpassword' token = 'sessiontok' file_path = '.'
Generating SSL certificates
Store configuration in file mycert.csr.cnf
and run the following command to generate a self-signed SSL certificate.
openssl req -newkey rsa:2048 -nodes -keyout ./mycert.key \
-x509 -days 365 -out ./mycert.crt \
-config <( cat mycert.csr.cnf )
mycert.csr.cnf
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = v3_req
subjectAltName = @alt_names
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[dn]
C=US
ST=YourState
L=YourTown
O=FileBridging
OU=filebridging
emailAddress=filebridging@yourdomain.com
CN = yourdomain.com
[ alt_names ]
DNS.1 = yourdomain.com
DNS.2 = 1.111.111.11
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for filebridging-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cf07e6bfe37a4df9ed0a3aeb7fa81ad7f1480a2ed694f476ad373d7b7375869 |
|
MD5 | c84a733a7c5398edddf8216616fe7408 |
|
BLAKE2b-256 | 6daec430b765cec05ea381dfa35554cff4d90f890352f899ed1a008b0304d224 |