- Шифрованный файл .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>
27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
<!-- 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`):
|
||
недавние файлы, тема, автоблокировка, очистка буфера, опции генератора.
|