Skip to main content

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

  1. introduction (e2eeftp)
  2. concepts used
  3. requirements
  4. how to start the server?

github issues

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

e2eeftp-0.0.0b2.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

e2eeftp-0.0.0b2-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

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

Hashes for e2eeftp-0.0.0b2.tar.gz
Algorithm Hash digest
SHA256 d7187f45a72b271f3a662b0d8c42dfebdf5326d15414bfb884f66ad563299d7c
MD5 0f1b825f6961aed5a7bdee8d51d25e0d
BLAKE2b-256 f2da55719a7e34aa1e0d881d6f578d81a4bab08954a74055da85756d2cf62b7d

See more details on using hashes here.

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

Hashes for e2eeftp-0.0.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 de4e4fe6793027c1013b09fd9b603f99ed44991d156b7291b2084d604098e205
MD5 7298f1823330d8d5f401b3fe14397174
BLAKE2b-256 99e3ddd68e438adbdaa53634bb518f2b8bb448681c4a59d91372c2baa5eaa054

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page