Stronghold Service
Файл:
backend/src/services/stronghold.rs
Сервис интеграции с IOTA Stronghold — специализированным хранилищем секретов с защитой от side-channel атак. Управляет инициализацией, сохранением/загрузкой состояния и операциями с vault Stronghold.
Эндпоинты
| Метод | Путь | Функция | Описание |
|---|---|---|---|
| POST | /api/stronghold/init | init_stronghold_svc | Инициализировать Stronghold |
| GET | /api/stronghold/initialized | is_stronghold_initialized_svc | Проверить инициализацию |
| GET | /api/stronghold/exists | stronghold_vault_exists_svc | Проверить наличие vault-файла |
| GET | /api/stronghold/path | get_stronghold_vault_path_svc | Путь к vault-файлу |
| POST | /api/stronghold/save | save_state_to_stronghold_svc | Сохранить состояние (legacy) |
| POST | /api/stronghold/load | load_state_from_stronghold_svc | Загрузить состояние (legacy) |
| POST | /api/stronghold/clear | clear_stronghold_svc | Очистить все данные |
| POST | /api/stronghold/delete | delete_stronghold_vault_svc | Удалить vault-файл |
| POST | /api/stronghold/password | change_stronghold_password_svc | Сменить пароль |
| POST | /api/stronghold/save-secure | save_state_to_stronghold_secure_svc | Сохранить (Store + Vault) |
| GET | /api/stronghold/secrets-info | get_vault_secrets_info_svc | Информация о секретах |
Зависимости
SharedState— глобальное состояние приложения (содержитStrongholdManager)StrongholdManager— обёртка над IOTA Stronghold
init_stronghold_svc
POST /api/stronghold/init
Инициализирует Stronghold с указанным путём к snapshot-файлу и паролем.
Параметры
| Имя | Тип | Описание |
|---|---|---|
snapshot_path | String | Путь к snapshot-файлу |
password | String | Пароль для шифрования |
Логика
- Создаёт PathBuf из snapshot_path
- Вызывает
state.init_stronghold(path)— создаёт StrongholdManager - Вызывает
manager.init(password)— создаёт/загружает snapshot - Записывает метрики
is_stronghold_initialized_svc / stronghold_vault_exists_svc
Проверки состояния Stronghold: инициализирован ли менеджер, существует ли файл vault.
save_state_to_stronghold_svc / load_state_from_stronghold_svc
Legacy-режим сохранения/загрузки состояния в Stronghold Store.
save_state_to_stronghold_secure_svc
POST /api/stronghold/save-secure
Сохраняет состояние в dual-режиме: Stronghold Store + Vault для максимальной защиты.
clear_stronghold_svc
POST /api/stronghold/clear
Очищает все данные в Stronghold (требует пароль).
delete_stronghold_vault_svc
POST /api/stronghold/delete
Удаляет физический файл Stronghold vault и сбрасывает менеджер в None.
change_stronghold_password_svc
POST /api/stronghold/password
Меняет пароль Stronghold: загружает с старым паролем, сохраняет с новым.
Параметры
| Имя | Тип | Описание |
|---|---|---|
old_password | String | Текущий пароль |
new_password | String | Новый пароль |
get_vault_secrets_info_svc
GET /api/stronghold/secrets-info
Возвращает мета-информацию о секретах (например, has_s3_credentials).