#update #client #swuc #ения #обзор #обеспе

bin+lib swuc

SWUC | Software Update Checker Client

1 unstable release

new 0.2.0 Apr 16, 2025

#47 in #update

Download history 53/week @ 2025-04-11

53 downloads per month

MIT license

25KB
355 lines

SWUC: Система проверки безопасных обновлений программного обеспечения

Обзор

SWUC (Secure Software Updates Checker) — это инструмент командной строки, предназначенный для безопасной проверки обновлений программного обеспечения. Он обменивается данными с удаленным сервером с использованием зашифрованных коммуникаций для обеспечения конфиденциальности и безопасности при проверке обновлений программных пакетов.

Установка

cargo install swuc

Или сборка из исходного кода:

git clone https://github.com/username/swuc.git
cd swuc
cargo build --release

Скомпилированный бинарный файл будет доступен по пути target/release/swuc.

Конфигурация

Перед использованием SWUC необходимо настроить файл конфигурации по следующему пути:

  • Linux: ~/.config/swuc/user_config.json
  • macOS: ~/Library/Application Support/swuc/user_config.json
  • Windows: C:\Users\<имя_пользователя>\AppData\Roaming\swuc\config\user_config.json

Пример конфигурации:

{
  "url": "wss://updates.example.com/api/check",
  "uuid": "ваш-уникальный-идентификатор",
  "secret": "ваш-секретный-ключ",
  "public": "ваш-публичный-ключ"
}

Использование

SWUC требует как минимум одну подкоманду для работы. В настоящее время поддерживается подкоманда run для запуска проверки обновлений.

Основная структура команды

swuc [ПОДКОМАНДА] [ОПЦИИ]

Доступные подкоманды

В настоящее время SWUC поддерживает следующую подкоманду:

run - Запуск проверки обновлений

Инициирует процесс проверки обновлений. Читает список пакетов из указанного входного файла, отправляет зашифрованные запросы на сервер обновлений и генерирует отчеты.

swuc run -i <ВХОДНОЙ_ФАЙЛ> [-o <ВЫХОДНОЙ_ФАЙЛ>] [-t <ИНТЕРВАЛ>]
Опции:
  • -i, --input <ФАЙЛ> (обязательно): Путь к файлу со списком пакетов. Этот файл должен содержать одно имя пакета на строку.

  • -o, --output <ФАЙЛ> (опционально): Путь, по которому будет сохранен отчет в читаемом виде. Если не указан, отчет будет сохранен только в местах по умолчанию (директория desktop/swuc-reports).

  • -t, --interval <ЧАСЫ> (опционально): Интервал в часах между проверками обновлений. Если указан, SWUC будет работать непрерывно, проверяя обновления через указанный интервал. Если не указан, SWUC выполнит проверку один раз и завершит работу.

Примеры

Проверка обновлений один раз:

swuc run -i ~/packages.txt -o ~/update_report.txt

Проверка обновлений каждые 24 часа:

swuc run -i ~/packages.txt -o ~/update_report.txt -t 24

Формат списка пакетов

Файл со списком пакетов должен содержать одно имя пакета на строку:

package1
package2
package3

Генерируемые отчеты

SWUC создает два типа отчетов:

  1. Краткий отчет: Сжатая версия, показывающая только пакеты с обновлениями.
  2. Полный отчет: Подробная версия, включающая источники обновлений и дополнительную информацию.

Отчеты сохраняются в:

  • Указанный выходной файл (если предоставлен через опцию -o)
  • Директорию рабочего стола (~/Desktop/swuc-reports/latest.txt)
  • Директорию с отчетами с отметкой времени (~/Desktop/swuc-reports/report_ЧЧ-ММ_ДД-ММ-ГГГГ.txt)

Кроме того, SWUC поддерживает файл, отслеживающий текущие версии пакетов, по пути ~/Desktop/swuc_current.txt.

Безопасность

SWUC использует ECIES (Elliptic Curve Integrated Encryption Scheme) для защиты коммуникаций с сервером обновлений. Клиент и сервер обмениваются публичными ключами, обеспечивая шифрование информации о пакетах при передаче.

Обработка ошибок

SWUC предоставляет подробные сообщения об ошибках, когда возникают проблемы, включая:

  • Ошибки конфигурации
  • Проблемы доступа к файлам
  • Проблемы сетевого подключения
  • Сбои шифрования/дешифрования
  • Проблемы анализа ответа сервера

Кэш

SWUC кэширует ответы сервера в следующих местах:

  • Linux: ~/.cache/swuc/
  • macOS: ~/Library/Caches/swuc/
  • Windows: C:\Users\<имя_пользователя>\AppData\Local\swuc\cache\

Это позволяет проводить аудит и устранение неполадок при необходимости.

Версия

Текущая версия: 0.2.0

Dependencies

~8–35MB
~513K SLoC