Metadata-Version: 2.4
Name: fteproxy
Version: 0.3.0
Summary: Format-Transforming Encryption proxy for censorship circumvention
Home-page: https://github.com/kpdyer/fteproxy
Author: Kevin P. Dyer
Author-email: "Kevin P. Dyer" <kpdyer@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/kpdyer/fteproxy
Project-URL: Documentation, https://github.com/kpdyer/fteproxy
Project-URL: Source, https://github.com/kpdyer/fteproxy
Project-URL: Bug Tracker, https://github.com/kpdyer/fteproxy/issues
Keywords: fte,encryption,proxy,censorship,privacy
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fte
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# fteproxy

[![Tests](https://github.com/kpdyer/fteproxy/actions/workflows/tests.yml/badge.svg)](https://github.com/kpdyer/fteproxy/actions/workflows/tests.yml)
[![PyPI version](https://badge.fury.io/py/fteproxy.svg)](https://badge.fury.io/py/fteproxy)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)

**fteproxy** provides transport-layer protection to resist keyword filtering, censorship, and discriminatory routing policies using Format-Transforming Encryption (FTE).

## Installation

```bash
pip install fteproxy
```

## Quick Start

### Server

```bash
fteproxy --mode server --server_ip 0.0.0.0 --server_port 8080 --proxy_ip 127.0.0.1 --proxy_port 8081
```

### Client

```bash
fteproxy --mode client --client_ip 127.0.0.1 --client_port 8079 --server_ip <server-ip> --server_port 8080
```

## How It Works

```
[Application] <-> [fteproxy client] <--FTE encoded--> [fteproxy server] <-> [Destination]
```

fteproxy encodes traffic to match user-specified regular expressions, making it appear as allowed traffic (e.g., HTTP) to network filters.

## Links

- **Documentation:** https://github.com/kpdyer/fteproxy
- **Homepage:** https://github.com/kpdyer/fteproxy
- **Publication:** [Protocol Misidentification Made Easy with Format-Transforming Encryption](https://kpdyer.com/publications/ccs2013-fte.pdf) (CCS 2013)

## License

MIT License
