Changelog ========= All notable changes to this project are documented here. The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_. Version 1.1.0 (2025-11-06) -------------------------- Added ~~~~~ **TLS/SSL Support:** * Optional TLS/SSL encryption for TCP connections * Automatic self-signed certificate generation * Certificate expiration warnings * TLS 1.2+ minimum version requirement * Server ``--cert-path`` and ``--key-path`` options for custom certificates * Client and server ``--enable-tls`` / ``--disable-tls`` flags * Certificates stored in ``~/.padrelay/certs/`` directory **Password Strength Warnings:** * Non-enforcing password strength checking with recommendations * Automatic password strength analysis on startup * Detailed recommendations for improving weak passwords * Warnings for very weak or commonly used passwords **Security Enhancements:** * Log sanitization to prevent log injection attacks * Config file permission warnings for world-readable files * 55 new security-focused tests **Debug Logging:** * Comprehensive debug mode via ``PADRELAY_DEBUG`` environment variable * Detailed TLS connection logging * Authentication flow logging * See ``DEBUG_LOGGING.md`` for details **Dependencies:** * Added ``cryptography>=41.0.0`` for TLS support * Added ``cffi>=1.15.0`` for cryptography backend Changed ~~~~~~~ * TLS/SSL is now **enabled by default** for TCP connections (disable with ``--disable-tls``) * Enhanced security warnings throughout the application * Improved error messages for security-related issues * Updated documentation with TLS setup guides Fixed ~~~~~ * All 123 tests now pass (previously 10 async integration tests were failing) * pytest-asyncio configuration issues resolved * Various minor bug fixes Security ~~~~~~~~ * Addresses **VULN-001** (No Network Encryption) - TLS/SSL now available * Addresses **VULN-002** (Weak Password Enforcement) - password strength warnings implemented * Addresses **VULN-003** (Passwords in Config Files) - file permission warnings added * Addresses **VULN-004** (Log Injection Potential) - log sanitization implemented Version 1.0.4 (2025-06-15) -------------------------- Added ~~~~~ * ``padrelay-keymapper`` CLI tool for creating controller mapping files * Interactive button and axis mapping * Support for Xbox 360 and DualShock 4 virtual gamepad types * Generated configuration files compatible with server and client Version 1.0.3 (2025-06-14) -------------------------- Fixed ~~~~~ * Synced GitHub release and PyPI version numbers to avoid mismatch * Ensured correct artifacts attached to GitHub Releases Version 1.0.2 (2025-06-14) -------------------------- Fixed ~~~~~ * Corrected ``version`` field in ``pyproject.toml`` to match intended release Version 1.0.1 (2025-06-14) -------------------------- Added ~~~~~ **CI/CD:** * GitHub Actions workflow for testing with pytest (``python-tests.yml``) * GitHub Actions workflow for building and publishing releases on tag push (``release.yml``) * Automated PyPI publishing on version tags Version 1.0.0 (2025-06-14) -------------------------- Initial release of PadRelay. Features ~~~~~~~~ * **Client-server architecture** for transmitting gamepad input over network * **Cross-platform client** supporting any OS with Python and pygame * **Windows server** using vgamepad and ViGEmBus for virtual gamepads * **TCP and UDP protocols** for different latency/reliability tradeoffs * **Challenge-response authentication** for TCP connections * **Token-based authentication** for UDP connections * **PBKDF2 password hashing** for secure password storage * **Rate limiting** to prevent denial-of-service attacks * **Heartbeat mechanism** for connection keepalive (TCP) * **Automatic reconnection** when connection drops * **Configurable button and axis mappings** * **Support for Xbox 360 and DualShock 4** virtual gamepads * **Comprehensive logging** with automatic log rotation * **Command-line tools:** ``padrelay-server``, ``padrelay-client`` Documentation ~~~~~~~~~~~~~ * README with installation and usage instructions * Configuration reference (CONFIGURATION.md) * Example configuration files * MIT License Links ----- * `GitHub Repository `_ * `PyPI Package `_ * `Issue Tracker `_ * `Latest Release `_