Share files via a bridge server.
Davte 0e17e72283 Main file added | 4 سال پیش | |
---|---|---|
filebridging | 4 سال پیش | |
.gitignore | 4 سال پیش | |
LICENSE | 4 سال پیش | |
README.md | 4 سال پیش | |
requirements.txt | 4 سال پیش | |
setup.py | 4 سال پیش |
Share files via a bridge server using TCP over SSL and end-to-end encryption.
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.
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
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 = '.'
You may use filebridging.create_certificate.py
script or use openssl from the command line.
python -m filebridging.create_certificate --name example --domain example.com --force
Store configuration in file mycert.csr.cnf
and run the following command to generate a self-signed SSL certificate.
openssl req -newkey rsa:4096 -nodes -keyout ./mycert.key \
-x509 -days 365 -out ./mycert.crt \
-config mycert.csr.cnf
mycert.csr.cnf
[ req ]
default_bits = 4096
prompt = no
default_md = sha256
distinguished_name = dn
[ dn ]
CN = yourdomain.com