Secret Vault — менеджер API-ключей и секретов

Курсовая работа по мобильной разработке для ОС Аврора. Приложение хранит записи локально в SQLite: добавление сервиса и ключей, поиск, фильтр по категории, просмотр, копирование и удаление. API Key и Secret Key шифруются AES-256-GCM. Подключение к внешнему серверу для работы приложения не требуется.

Открытие и запуск в Aurora IDE

Проверено на Aurora SDK (MB2) 5.2.1.200, ОС Аврора 5.2.1.200, эмулятор x86_64. Понадобятся установленный SDK, Git и запущенный Docker Desktop. Настройка SDK: официальная инструкция.

  1. Клонируйте ветку внутрь рабочей области SDK, выбранной при его установке:

    git clone --branch dev_course_work --single-branch https://hub.mos.ru/unecon_mobiledevelopment_2026/is-2302/markkudryakov.git
  2. В Aurora IDE выберите Файл → Открыть файл или проект и откройте:

    application/SecretVault/ru.template.curswork.pro
  3. Выберите комплект AuroraOS-5.2.1.200-x86_64.default для эмулятора. Для физического устройства выберите совместимую платформу ARM64 или ARMv7.

  4. В настройках запуска выберите устройство Aurora OS эмулятор 5.2.1.200 и метод «Развернуть, используя RPM пакет». В RPM Sign используйте штатный Regular-ключ и сертификат SDK. Режим разработчика на устройстве должен быть включён. Не запускайте приложение как обычный Windows EXE.

  5. Соберите проект и нажмите Запустить. IDE создаст RPM, подпишет его, установит в выбранное устройство и запустит приложение.

Файлы .pro.user намеренно отсутствуют: Aurora IDE создаёт их локально для установленного SDK и устройств конкретного компьютера.

Структура репозитория

application/SecretVault/
  ru.template.curswork.pro       проект Aurora IDE / qmake
  ru.template.curswork.desktop   ярлык и идентификатор приложения
  src/                          запуск и AES-256-GCM
  qml/
    curswork.qml                единственное ApplicationWindow
    pages/                      список, добавление, детали, справка
    js/VaultStorage.js          SQLite и миграция шифрования
    cover/                      обложка приложения
    icons/                      ресурсы QML
  icons/                        иконки приложения для RPM
  rpm/                          рецепт сборки RPM
  translations/                 исходники переводов
  tests/                        тесты шифрования и миграции (не входят в RPM)
doc/                            отчёт по курсовой работе
presentation/                   материалы презентации, если добавлены

Шифрование

ENCRYPTION.md объясняет алгоритм, генерацию ключа и миграцию. Главный файл: application/SecretVault/src/vaultcrypto.cpp. Ищите комментарии «ЗДЕСЬ ШИФРУЕТСЯ» и «ЗДЕСЬ СОЗДАЁТСЯ».

AES-ключ создаётся на устройстве при первом запуске в приватном файле aes256.key; ключей и пользовательской базы в репозитории нет. Мастер-пароль не используется. Если одновременно доступны база и файл ключа, данные можно расшифровать. Название сервиса и описание не шифруются.

Повторная сборка в Windows без обновления репозиториев

Если нужные зависимости уже есть в SDK, но его сервер репозиториев недоступен, из корня клонированного проекта можно выполнить:

.\build-offline.ps1

Сборка, Regular-подпись и установка в эмулятор:

.\build-offline.ps1 -Deploy

Скрипт принимает -SdkRoot и -Target. По умолчанию используются C:\AuroraOS и AuroraOS-5.2.1.200-x86_64. Он не входит в приложение и не нужен для обычного запуска из IDE. При изменении зависимостей сначала установите их средствами SDK. Regular-подпись предназначена для разработки.

Проверка и лицензия

Проверены сборка RPM, запуск на эмуляторе, основные действия с записями, шифрование, отказ при подмене данных и миграция старой SQLite-базы. Исходники тестов и описание запуска приведены в ENCRYPTION.md.

Автор — AUTHORS.md. Лицензия — LICENSE.