SHA256
Миграция PDA на client.key
This commit is contained in:
+4
-4
@@ -70,11 +70,11 @@
|
||||
Фоновая логика:
|
||||
- пока открыт `HOME`, экран сам обновляется примерно раз в секунду;
|
||||
- при наличии `login + secret + homeserver` и Wi-Fi устройство читает Solana `user_pda` напрямую через RPC;
|
||||
- сравниваются `root key`, `blockchain key`, `device key` и `homeserver` session-запись типа `100`;
|
||||
- сравниваются `root key`, `blockchain key`, `client key` и `homeserver` session-запись типа `100`;
|
||||
- для строки `SHiNE:` устройство держит отдельную WebSocket-сессию с сервером SHiNE:
|
||||
- авторизация через `AuthChallenge/CreateAuthSession` или `SessionChallenge/SessionLogin`;
|
||||
- session key = публичный `homeserver key`;
|
||||
- подтверждение создания сессии подписывается `device key`;
|
||||
- подтверждение создания сессии подписывается `client key`;
|
||||
- heartbeat выполняется `Ping` раз в минуту.
|
||||
|
||||
## SETTINGS_MENU
|
||||
@@ -214,8 +214,8 @@
|
||||
- `Root key priv (base58)`;
|
||||
- `Blockchain key (base58)`;
|
||||
- `Blockchain key priv (base58)`;
|
||||
- `Device key (base58)`;
|
||||
- `Device key priv (base58)`;
|
||||
- `Client key (base58)`;
|
||||
- `Client key priv (base58)`;
|
||||
- `Homeserver key (base58)`;
|
||||
- `Homeserver key priv (base58)`;
|
||||
- для каждого поля показывается формула derivation;
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
- вместо старых двух кнопок `баланс` и `QR` показывается одна широкая кнопка;
|
||||
- текст кнопки: `Wallet: <selected wallet name>`;
|
||||
- доступные имена:
|
||||
- `DeviceKey`
|
||||
- `ClientKey`
|
||||
- `RootKey`
|
||||
- либо сохранённое имя `custom`-кошелька;
|
||||
- после старта устройства баланс активного выбранного кошелька пытается загрузиться автоматически, если уже есть секрет и `Wi-Fi`;
|
||||
@@ -429,7 +429,7 @@
|
||||
- верхняя кнопка открывает экран выбора кошелька `WALLET_SELECT`;
|
||||
- `Показать баланс кошелька` читает реальный баланс именно активного выбранного кошелька из `Solana RPC`;
|
||||
- `Показать QR-код кошелька` открывает экран `WALLET_QR`;
|
||||
- этот экран не меняет логику Solana-регистрации пользователя: on-chain регистрация и проверки `PDA` по-прежнему завязаны на `device key`.
|
||||
- этот экран не меняет логику Solana-регистрации пользователя: on-chain регистрация и проверки `PDA` по-прежнему завязаны на `client key`.
|
||||
|
||||
## Экран WALLET_SELECT
|
||||
|
||||
@@ -437,14 +437,14 @@
|
||||
|
||||
- строку `Current: <selected wallet name>`;
|
||||
- три кнопки выбора:
|
||||
- `DeviceKey`
|
||||
- `ClientKey`
|
||||
- `RootKey`
|
||||
- `Custom` или `Custom: <имя>`;
|
||||
- у текущего выбора видна галочка.
|
||||
|
||||
Поведение:
|
||||
|
||||
- `DeviceKey` активирует кошелёк, выведенный из suffix `dev.key`;
|
||||
- `ClientKey` активирует кошелёк, выведенный из suffix `client.key`;
|
||||
- `RootKey` активирует кошелёк, выведенный из suffix `root.key`;
|
||||
- `Custom` использует derivation:
|
||||
`sha256(base64(secret32) + "|wallet." + customName)`;
|
||||
@@ -533,7 +533,7 @@
|
||||
- строку `Session: <platform/name>`;
|
||||
- строку `Kind: Client session` или `Kind: Wallet session`;
|
||||
- пояснение:
|
||||
- для client session: `Only device key will be transferred. No additional keys will be sent.`
|
||||
- для client session: `Only client key will be transferred. No additional keys will be sent.`
|
||||
- для wallet session: `No keys will be transferred.`
|
||||
|
||||
Кнопки:
|
||||
@@ -544,7 +544,7 @@
|
||||
Поведение:
|
||||
|
||||
- `YES` подтверждает заявку:
|
||||
- для client session устройство передаёт только `device key`;
|
||||
- для client session устройство передаёт только `client key`;
|
||||
- для wallet session устройство выпускает отдельную `wallet-session` без передачи ключей;
|
||||
- `NO` отклоняет заявку;
|
||||
- после любого решения устройство возвращается в список `REQUESTS` и обновляет его;
|
||||
|
||||
Reference in New Issue
Block a user