A simple command-line prototype for secure file transfers over TCP using Python. It ensures that files are encrypted from the client to the server, with no one in the middle being able to decipher the content.
Project description
Table Of Content
e2eeftp(0.0.0b2) (end-to-end encryptioned file transfer protocol)
This is a custom file transfer protocol to transfer file in a secure tunnel with e2ee encryption from client to server.
concepts used
What is e2ee encryption?
End-to-end encryption (E2EE) is a type of messaging that keeps messages private from everyone, including the messaging service. When E2EE is used, a message only appears in decrypted form for the person sending the message and the person receiving the message. The sender is one "end" of the conversation and the recipient is the other "end"; hence the name "end-to-end."
Think of end-to-end encryption as being like a letter that goes through the mail in a sealed envelope. The person sending the letter is able to read it, and the person who receives it can open it and read it. Postal service employees cannot read the letter because it remains sealed in the envelope.
What is FTP protocol?
File transfer protocol (FTP) is an Internet tool provided by TCP/IP. It helps to transfer files from one computer to another by providing access to directories or folders on remote computers and allows software, data and text files to be transferred between different kinds of computers.
requirements
Brfore we start we need to install these
- python 3.14+
- uv (my choice for the package manager)
- rich, cryptography
How to start the server?
To start the server type create a python file and past in this command for a simple server.
# server.py
from e2eeFTP import e2eeftp
server = e2eeftp()
if __name__ == "__main__":
server.run()
For the client this is the simple setup.
# client.py
from e2eeFTP import e2eeftpClient
if __name__ == "__main__":
client = e2eeftpClient()
client.send("mini-veera.jpg") # Testing send request
client.get('mini-veera.jpg') # Testing get request
client.list() # Testing list request
client.delete('mini-veera.jpg')# Testing delete request
)
You can send any file - image(png, jpeg), text(py, txt, c), executable, commpressed file(zip, rar, tar, gz) and more.
you can also cutomize the server to add or upgrage any methods. check custom_server.py for an example.
sources:
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file e2eeftp-0.0.0b2.tar.gz.
File metadata
- Download URL: e2eeftp-0.0.0b2.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7187f45a72b271f3a662b0d8c42dfebdf5326d15414bfb884f66ad563299d7c
|
|
| MD5 |
0f1b825f6961aed5a7bdee8d51d25e0d
|
|
| BLAKE2b-256 |
f2da55719a7e34aa1e0d881d6f578d81a4bab08954a74055da85756d2cf62b7d
|
File details
Details for the file e2eeftp-0.0.0b2-py3-none-any.whl.
File metadata
- Download URL: e2eeftp-0.0.0b2-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de4e4fe6793027c1013b09fd9b603f99ed44991d156b7291b2084d604098e205
|
|
| MD5 |
7298f1823330d8d5f401b3fe14397174
|
|
| BLAKE2b-256 |
99e3ddd68e438adbdaa53634bb518f2b8bb448681c4a59d91372c2baa5eaa054
|