[PR #894] [MERGED] Используем системный libcrypto как fallback, если cryptography недоступен #69

Closed
opened 2026-07-19 11:34:36 +03:00 by mirror-bot · 0 comments

📋 Pull Request Information

Original PR: https://github.com/Flowseal/tg-ws-proxy/pull/894
Author: @k1zn
Created: 5/26/2026
Status: ✅ Merged
Merged: 5/30/2026
Merged by: @Flowseal

Base: main ← Head: crypto-shim


📝 Commits (1)

  • c6a4416 Fall back to system libcrypto when cryptography is unavailable

📊 Changes

3 files changed (+132 additions, -2 deletions)

View changed files

➕ proxy/_aes.py (+130 -0)
📝 proxy/bridge.py (+1 -1)
📝 proxy/tg_ws_proxy.py (+1 -1)

📄 Description

Добавляет proxy/_aes.py — небольшой shim для AES-CTR, который сначала пытается импортировать пакет cryptography, а если его нет — оборачивает системный OpenSSL libcrypto через ctypes. Shim повторяет тот узкий кусок API, который реально используется в проекте: Cipher(algorithms.AES(key), modes.CTR(iv)).encryptor().update(...), поэтому поведение на десктопе/в Docker не меняется.

Зачем

Современный cryptography (>=3.5) требует Rust тулчейн для сборки из исходников, из-за чего проект тяжело поставить на embedded. В моем случае это Entware на роутерах (Keenetic / OpenWrt с USB),

На таких системах уже есть OpenSSL'овский libcrypto, и его переиспользование через ctypes полностью убирает требование к Rust, не трогая десктопный путь.

Изменения

  • Новый модуль proxy/_aes.py — try: from cryptography ... except ImportError: ctypes-обёртка над libcrypto.
  • proxy/tg_ws_proxy.py и proxy/bridge.py переключены с cryptography.hazmat.primitives.ciphers на proxy._aes.
  • Новых зависимостей нет;

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Flowseal/tg-ws-proxy/pull/894 **Author:** [@k1zn](https://github.com/k1zn) **Created:** 5/26/2026 **Status:** ✅ Merged **Merged:** 5/30/2026 **Merged by:** [@Flowseal](https://github.com/Flowseal) **Base:** `main` ← **Head:** `crypto-shim` --- ### 📝 Commits (1) - [`c6a4416`](https://github.com/Flowseal/tg-ws-proxy/commit/c6a44165d33ba36aa2c2c7f37ce801855c809e4f) Fall back to system libcrypto when `cryptography` is unavailable ### 📊 Changes **3 files changed** (+132 additions, -2 deletions) <details> <summary>View changed files</summary> ➕ `proxy/_aes.py` (+130 -0) 📝 `proxy/bridge.py` (+1 -1) 📝 `proxy/tg_ws_proxy.py` (+1 -1) </details> ### 📄 Description Добавляет `proxy/_aes.py` — небольшой shim для AES-CTR, который сначала пытается импортировать пакет `cryptography`, а если его нет — оборачивает системный OpenSSL `libcrypto` через `ctypes`. Shim повторяет тот узкий кусок API, который реально используется в проекте: `Cipher(algorithms.AES(key), modes.CTR(iv)).encryptor().update(...)`, поэтому поведение на десктопе/в Docker не меняется. ### Зачем Современный `cryptography` (>=3.5) требует Rust тулчейн для сборки из исходников, из-за чего проект тяжело поставить на embedded. В моем случае это Entware на роутерах (Keenetic / OpenWrt с USB), На таких системах уже есть OpenSSL'овский `libcrypto`, и его переиспользование через `ctypes` полностью убирает требование к Rust, не трогая десктопный путь. ### Изменения - Новый модуль `proxy/_aes.py` — `try: from cryptography ... except ImportError: ctypes-обёртка над libcrypto`. - `proxy/tg_ws_proxy.py` и `proxy/bridge.py` переключены с `cryptography.hazmat.primitives.ciphers` на `proxy._aes`. - Новых зависимостей нет; --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror-bot added the pull-request label 2026-07-19 11:34:36 +03:00
mirror-bot changed title from [PR #894] [MERGED] Используем системный libcrypto как fallback, если cryptography недоступен to [PR #894] Используем системный libcrypto как fallback, если cryptography недоступен 2026-07-20 04:10:56 +03:00
mirror-bot changed title from [PR #894] Используем системный libcrypto как fallback, если cryptography недоступен to [PR #894] [MERGED] Используем системный libcrypto как fallback, если cryptography недоступен 2026-07-20 23:14:53 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Utilities/tg-ws-proxy#69