# Argon2id для входа/регистрации + блок «Расширенные»

Статус: `pending`

## Что сделано

- При непустом пароле derivation ключей переведён на Argon2id.
- В derivation участвуют и логин, и пароль.
- Для пустого пароля оставлен прежний тестовый режим (старый детерминированный вариант), чтобы сохранить текущий тестовый сценарий.
- На экранах входа и регистрации добавлен блок `Расширенные` с кратким описанием схемы и параметров.

## Параметры Argon2id (текущий профиль)

- `t = 3`
- `m = 262144 KiB` (256 MB)
- `p = 1`
- `dkLen = 32`

Формат salt:

- `saltSource = "shine-auth-v2|login=<lowercaseLogin>|suffix=<keySuffix>"`
- `salt = first16bytes( SHA-256(saltSource) )`
- `keySuffix` = `root.key` / `bch.key` / `dev.key`

## Как проверять

1. На входе/регистрации открыть `Расширенные` и проверить отображение описания.
2. Проверить тестовый режим: оставить пароль пустым и убедиться, что вход работает по старому сценарию.
3. Проверить новый режим: ввести непустой пароль и выполнить вход/регистрацию.
4. Проверить, что одинаковый пароль при разных логинах даёт разные ключи (например, вход под двумя логинами с тем же паролем и проверка несовпадения производных ключей/сессий).

## Ожидаемый результат

- Непустой пароль использует Argon2id.
- Пустой пароль остаётся тестовым legacy-вариантом.
- UI показывает пользователю, как сейчас считается секрет.
