AspansQulyp/notes/DATA.md
deni.reyton 45de8f9f51 Qulyp: локальный менеджер паролей на Rust + egui
- Шифрованный файл .qulyp: Argon2id + XChaCha20-Poly1305, атомарная запись и .bak
- Записи с TOTP, папками, избранным и историей паролей; генератор паролей
- Синхронизация через облачную папку с послезаписным слиянием и ручное слияние файлов
- Автоблокировка, автоочистка буфера обмена, тёмная/светлая тема
- Сборка под Windows и Linux, CI для Gitea Actions
- Заметки проекта в notes/ с лимитами строк (tests/notes.rs)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 14:32:11 +05:00

27 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- limit: 80 -->
# Данные
## Файл `.qulyp`
| Байты | Поле |
|---|---|
| 0–7 | magic `QULYPv1\0` |
| 8–19 | Argon2id: m_kib, t, p (u32 LE) |
| 20–35 | salt (16) |
| 36–59 | nonce XChaCha20 (24) |
| 60– | шифротекст JSON + тег Poly1305 (16) |
Рядом при сохранении: `.qulyp.bak` (прошлая версия), временный `.qulyp.tmp` (атомарная замена).
## JSON хранилища (`Vault`)
- `format` (1), `name`, `created` (мс)
- `entries[]`: `id` (uuid), `title`, `username`, `password`, `url`, `totp`, `notes`,
`group` (uuid|null), `favorite`, `created`, `modified` (мс), `history[] {password, changed}`
- `groups[]`: `id`, `name`, `modified`
- `tombstones {uuid: мс}` — удалённые записи и папки
Все поля с `serde(default)` — старые файлы читаются новыми версиями.
## Настройки (не секретные)
`%APPDATA%\Qulyp\config.json` / `~/.config/qulyp/config.json` (путь меняется `QULYP_CONFIG`):
недавние файлы, тема, автоблокировка, очистка буфера, опции генератора.