e2eeftp is a powerful, lightweight, and modern Python library for end-to-end encrypted file transfers. Designed for developers who need to integrate military-grade secure file sharing with minimal boilerplate.
Zero-Knowledge
Files are encrypted before they ever leave your machine. The server never sees your raw data, ensuring absolute privacy.
Intuitive API
A clean, pythonic interface that abstracts away the complex cryptography, letting you focus on building your app.
Why e2eeftp?
Standard FTP and even SFTP have limitations when it comes to true end-to-end privacy, especially when storing files on third-party servers. e2eeftp bridges the gap by enforcing strong local encryption before transmission.
Automatic key generation and management.
Chunked streaming for massive file support.
Built-in integrity checks to prevent tampering.
Seamless integration with existing Python codebases.
Installation
Getting started with e2eeftp is as simple as running a single command. We support Python 3.8+ on Linux, macOS, and Windows.
Using pip
The easiest way to install e2eeftp is via the standard Python package manager, pip.
bash
pip install e2eeftp
Using Poetry
bash
poetry add e2eeftp
Cryptography Dependencies
e2eeftp relies on modern cryptographic libraries. Ensure your system has the necessary build tools if you are installing on a pristine Linux environment (e.g., build-essential, libssl-dev).
Quick Start
Let's dive right in. In this guide, we'll generate encryption keys, connect to a server, and securely upload a file.
Your First Secure Transfer
Create a new file named transfer.py and add the following code:
python
import e2eeftp
# 1. Generate a new secure keypair
keys = e2eeftp.generate_keypair()
# 2. Initialize the client
client = e2eeftp.Client(
host="ftp.example.com",
username="user",
password="super_secret_password"
)
# 3. Encrypt and upload the file in one go
client.upload_encrypted(
local_path="sensitive_data.pdf",
remote_path="/vault/secure_data.enc",
public_key=keys.public
)
print("File encrypted and transferred successfully!")
Coming Soon
This section of the documentation is being written.