commit 401431ae2f232ac8f54a7db8e24ea17b977941d9 Author: NikitolProject Date: Tue Feb 24 22:36:56 2026 +0300 docs: initialize project diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md new file mode 100644 index 0000000..0297a54 --- /dev/null +++ b/.planning/PROJECT.md @@ -0,0 +1,68 @@ +# Encrypted Archive (encrypted_archive) + +## What This Is + +Кастомный архиватор на Rust с собственным бинарным форматом, предназначенный для защиты данных (текстов и APK-файлов) от распаковки стандартными утилитами. Архивация выполняется через CLI на Linux/macOS, деархивация — через Kotlin-приложение на Android-магнитоле (Qualcomm, Android 13) с fallback на shell-скрипт через busybox. + +## Core Value + +Архив невозможно распаковать без знания формата — стандартные утилиты (7z, tar, unzip, binwalk) не распознают и не извлекают содержимое. + +## Requirements + +### Validated + +(None yet — ship to validate) + +### Active + +- [ ] CLI-утилита на Rust для создания архивов (Linux/macOS) +- [ ] Кастомный бинарный формат — не распознаётся стандартными архиваторами +- [ ] Сжатие данных перед шифрованием +- [ ] Шифрование AES-256 или ChaCha20 с зашитым ключом +- [ ] Обфускация структуры формата (нестандартные magic bytes, перемешанные блоки, фейковые заголовки) +- [ ] Упаковка нескольких файлов в один архив (тексты + APK) +- [ ] Деархивация через Kotlin-код на Android 13 (основной путь) +- [ ] Деархивация через shell-скрипт (busybox dd/xxd/openssl) как fallback +- [ ] Целостность данных — распакованные файлы идентичны оригиналам +- [ ] Базовые тесты: round-trip упаковка/распаковка + +### Out of Scope + +- GUI-интерфейс для архиватора — только CLI +- Поддержка Windows — архивация только Linux/macOS +- Защита от опытных реверс-инженеров с IDA/Ghidra — целевая аудитория защиты: обычные пользователи +- Потоковая архивация/деархивация — работаем с файлами целиком +- Парольная защита — используется зашитый ключ + +## Context + +- Целевое устройство: Android-магнитола на Qualcomm SoC, Android 13 +- На магнитоле доступен busybox (dd, xxd, openssl и другие стандартные утилиты) +- Kotlin-код деархивации будет интегрирован в Android-приложение на магнитоле +- Shell-скрипт — запасной вариант деархивации, когда Kotlin-приложение недоступно +- Данные: текстовые файлы и APK-файлы (от нескольких КБ до десятков МБ) +- Формат должен быть достаточно простым, чтобы его можно было реализовать на shell (busybox) без внешних зависимостей +- Ключ шифрования зашит в код деархиватора (Kotlin/shell) — не вводится пользователем +- Модель: исключительно Opus 4.6 для всех агентов + +## Constraints + +- **Язык архиватора**: Rust — производительность, безопасность памяти, кросс-компиляция +- **Деархивация Kotlin**: Должна работать на Android 13 без native-библиотек (чистый JVM/Android SDK) +- **Деархивация busybox**: Только стандартные команды busybox — dd, xxd, openssl, sh +- **AI модель**: Только Opus 4.6 для всех агентов в процессе разработки +- **Документация**: Использовать Context7 MCP для всех библиотек/фреймворков + +## Key Decisions + +| Decision | Rationale | Outcome | +|----------|-----------|---------| +| Rust для CLI-архиватора | Безопасность памяти, скорость, хорошая экосистема крипто-библиотек | — Pending | +| Кастомный бинарный формат | Стандартные форматы легко распознаются binwalk/file | — Pending | +| AES/ChaCha20 + обфускация | Криптографическая надёжность + непрозрачность формата для обычных пользователей | — Pending | +| Зашитый ключ (не пароль) | Упрощает UX на магнитоле, достаточно для защиты от обычных пользователей | — Pending | +| Busybox shell как fallback | Работает везде на Android без дополнительных зависимостей | — Pending | + +--- +*Last updated: 2026-02-24 after initialization*