Skip to content

Releases: VLOD-ZDOV/SCmess

Подкопотные улучшение

03 Apr 11:25
f87d696

Choose a tag to compare

Потоковое шифрование файлов — encrypt_file_gcm и decrypt_file_gcm теперь читают файл блоками по 64 КБ в цикле. Шифрование вынесено в threading.Thread прямо из FileScreen, интерфейс не зависает. На экране показывается прогресс в процентах через Clock.schedule_once (единственный безопасный способ трогать UI из потока в Kivy). Пока идёт операция — кнопки не реагируют повторно (_busy = True).
Фикс RSA-ключей разного размера — старый код хардкодил f.read(512), что ломало 2048-бит ключи (их блок 256 байт). Новый формат файла: первые 2 байта хранят длину RSA-блока (rsa_block_len.to_bytes(2, 'big')), после него RSA-блок нужной длины. Тег GCM перенесён в конец файла (так работает потоковый GCM — тег доступен только после finalize()).
Путь сохранения файлов — метод _output_path() сначала пробует сохранить рядом с оригиналом (проверяет запись тестовым файлом). Если директория недоступна (например, кэш Document UI) — сохраняет в Downloads/. Пользователь видит полный путь в уведомлении об успехе.
Document UI — убран медленный побайтовый JNI-цикл через InputStream. Остался только быстрый путь через ParcelFileDescriptor.getFd() + os.read() — Python читает напрямую через Linux fd без JNI на каждый байт. Копирование вынесено в поток.
FileScreen — два спиннера как в TextScreen: верхний для шифрования (публичные ключи), нижний для расшифровки (приватные, первый по умолчанию).
Настройки — кнопки «Логи приложения» (не требует dev mode) и «Версия 1.7 — Что нового?» с подробным changelog.

Допил функционала

02 Apr 08:59
980dab7

Choose a tag to compare

Pre-release

Legacy шифрование — новая кнопка в главном меню, отдельный экран LegacyScreen с тем же интерфейсом что и обычное шифрование. Использует твою исходную логику: прямой RSA-OAEP без AES, результат — base64-строка. Важно: работает только с короткими текстами (до ~470 байт для 4096-бит ключа)
Импорт приватного ключа — оба диалога (из файла и текстом) теперь автоматически определяют тип по содержимому PEM. Проверяется наличие слова PRIVATE / PUBLIC в заголовке, если нет — пробует загрузить через cryptography. Для одного пользователя можно импортировать оба ключа отдельными операциями — они пишутся в разные поля (public_key_path / private_key_path), не перезатирают друг друга.
Fingerprint — в карточке пользователя теперь показывается A3:F7:C2:D1:E9:B0:4A:1C (SHA-256 от DER публичного ключа, первые 16 символов). Для приватного ключа fingerprint считается через его публичную часть — поэтому совпадает с публичным ключом той же пары, что удобно для проверки.
Спиннер расшифровки в TextScreen — теперь два спиннера: верхний «для шифрования» (публичные ключи), нижний «для расшифровки» (приватные). Нижний по умолчанию автоматически выбирает первого пользователя с приватным ключом при входе на экран.
Подтверждение удаления — попап «Удалить / Отмена» перед удалением пользователя.

bugfix Scmess_apk

02 Apr 02:26
0f988f3

Choose a tag to compare

bugfix Scmess_apk Pre-release
Pre-release

Крипто: вместо имён — хеш публичного ключа (fingerprint). Имена в JSON исчезнут, при расшифровке ищем по отпечатку своего ключа.
UI: кнопки «Вставить», «Очистить», «Скопировать» + авто-копирование в группе.RВот что сделано:
Анонимность получателей в групповом шифровании
Вместо имён в JSON теперь хранятся SHA-256 fingerprint'ы публичных ключей (первые 32 символа hex).
Имена нигде не фигурируют. При расшифровке приложение берёт свои локальные публичные ключи, считает их fingerprint и ищет совпадение в словаре

Новые кнопки:

Шифрование текста: строка «Зашифровать / Расшифровать» + отдельная строка «Вставить / Очистить»
Групповой чат: переключатель авто-копирования (как в текстовом экране) + строка «Вставить / Очистить»

SCmess_apk

01 Apr 13:26
2d515a6

Choose a tag to compare

SCmess_apk Pre-release
Pre-release
3.4.1

Update main.py

6.1

25 Jun 06:00
8501351

Choose a tag to compare

[FIX] New logic to delete user

Full Changelog: 6.0...6.1

6.0

14 Jun 07:47
06a3dfa

Choose a tag to compare

6.0

[ADD] Режим переписки
[FIX] В ходе рефакторинга main было убрано 60 строк
[FIX] Рефакторинг функции вывода меню -> более читаемо

Full Changelog: 5.5...6.0

5.5

23 Mar 09:24
5b766e6

Choose a tag to compare

5.5

Небольшое обновление с фиксом мини багов
[FIX] mini-bug

SCmess_Cython.bin - Linux версия скомпилированная gcc + Cython
SCmess_Nuitka.bin - Linux версия скомпилированная Nuitka
SCmess.exe - Windows версия скомпилированная pyinstaller

SCmess_Gui.bin - Linux версия Gui
SCmess_Gui.exe - Windows версия Gui

Rust(консольная и не функциональная):
Rsmess.exe
Rsmess.bin
RsmessAARCH64.bin - Версия для запуска на aarch64
RsmessAndroid.bin - Версия для запуска на android

5.4

01 Mar 07:38
0b83f95

Choose a tag to compare

5.4

[FIX] Расшифровка файлов не работала из за ожидания rsa2048 вместо 4096
[ADD] .exe
SCmess.exe консольная версия | SCmess_Gui.exe весия с Qt интерфейсом (предпочтительнее)
SCruss-Gui.exe Gui версия на Rust. На нее в отличие от других .exe не жалуется защитник windows. Но она нормально не реализованна
SCruss_Gui linux версия Gui на Rust. Лучше вместо нее пользоватся пайтон версией
SCmess_Gui.bin linux скомпилированная nuitka

5.3

28 Feb 16:49
318133b

Choose a tag to compare

5.3

[DELL] Безполезная неиспользуемая функция

5.2

23 Feb 04:12
dec5800

Choose a tag to compare

5.2

[FIX] Нормальный поиск ключей, если они имеют вид как их создает программа