2026-05-31 22:34:26 +03:00
2026-02-15 07:48:22 +03:00
2026-03-27 04:23:08 +03:00
2026-04-16 22:29:29 +03:00
2026-02-15 07:48:22 +03:00
2026-02-15 07:48:22 +03:00
2026-02-15 07:48:22 +03:00
2026-06-02 18:36:16 +03:00

Wallenc

Android-приложение для защищённого хранения файлов и секретов: шифрование выполняется на устройстве до выгрузки во внешнее хранилище. Собственного backend нет — клиент и API провайдеров (Яндекс.Диск и др.).

Задача

Иерархия VaultsManager → vault → storage → файлы:

Уровень Смысл
Локальный vault Один на устройстве, список storage
Удалённый vault Подключение по OAuth (Яндекс)
Storage Папка/контейнер с файлами, метаданные в Room
Шифрование AES на storage; ключ не передаётся провайдеру
Sync Журнал изменений, группы storage, фоновые задачи
Секреты / 2FA Текстовые записи и TOTP внутри открытого storage

Провайдер хранилища и сеть считаются недоверенными. Room хранит только служебные данные (метаданные, токены, журнал sync), не пользовательский контент в открытом виде.

Модули

app/                    — точка входа, Hilt, навигация
domain/                 — интерфейсы и доменные модели
usecases/               — сценарии (шифрование, sync, CRUD storage)
domain-vault/           — storage, Яндекс.Диск, Encryptor
ui/                     — Jetpack Compose
infrastructure-android/ — Room, DAO, платформенные реализации
vault-contracts/        — контракты для новых провайдеров
task-runtime/           — очередь длительных операций

Архитектура: MVVM + Clean Architecture (uiusecases / domaindomain-vault / infrastructure-android).

Стек

Kotlin · Jetpack Compose · Coroutines / Flow · Hilt · Room · WorkManager · клиентское AES

Сборка и тесты

./gradlew assembleDebug
./gradlew test
./gradlew connectedDebugAndroidTest   # устройство или эмулятор

JDK 21 рекомендуется (см. toolchain в Gradle).

Требования

  • Android с поддержкой Compose
  • Для OAuth и удалённых vault — сеть
  • Для фонового шифрования и sync — достаточно RAM под Worker и Room
Description
No description provided
Readme MIT 92 MiB
Languages
Kotlin 78.3%
Typst 18%
Python 2.5%
Shell 0.7%
TeX 0.5%