Ключ: если ИШ не нашёл ключ на флешке — флешка монтируется напрямую и проверка повторяется; в ошибке — что видит шлюз

На .29 ключ с флешки не подписывал (E0700009 «Не найден ключ ЭП»): ИШ не видел
флешку. Если автомонтирование ключевой флешки не сработало, установщик монтирует
её напрямую (только чтение, под igate) и проверяет подпись ещё раз. Не помогло —
в ошибке: смонтирована ли флешка в /var/lib/igate/keymedia и какие ключи (*.vdk)
видит ИШ.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-06 18:46:39 +03:00
parent bdf0f6d8fd
commit 9673dfaaf4
3 changed files with 30 additions and 10 deletions
+2 -1
View File
@@ -663,7 +663,8 @@ func keyInstallProblem(res map[string]any) string {
case igate != "connected" && igate != "pending-channel":
return "профиль ИШ не сформирован — " + strings.TrimSuffix(igateRu(igate), ":")
case strings.HasPrefix(check, "fail"):
return "ключ не подписывает: " + strings.TrimPrefix(check, "fail: ") + " — вставлена ли флешка с ключом?"
diag, _ := res["keydiag"].(string)
return "ключ не подписывает: " + strings.TrimPrefix(check, "fail: ") + prefixed(". Что видит шлюз — ", diag)
}
return ""
}
+1 -1
View File
@@ -802,7 +802,7 @@ func TestKeyInstallProblem(t *testing.T) {
{map[string]any{"rebuild": "as-is", "igate": "pending-channel", "keycheck": "ok"}, ""},
{map[string]any{"rebuild": "fail: crestor: Ошибка загрузки ключа ЭП", "igate": "skip"}, "справочник"},
{map[string]any{"rebuild": "ok", "igate": "skip"}, "профиль ИШ"},
{map[string]any{"rebuild": "ok", "igate": "connected", "keycheck": "fail: E0D5"}, "не подписывает"},
{map[string]any{"rebuild": "ok", "igate": "connected", "keycheck": "fail: E0D5", "keydiag": "флешка в /var/lib/igate/keymedia: не смонтирована; ключи, видимые ИШ: нет"}, "не смонтирована"},
} {
got := keyInstallProblem(c.res)
if (c.want == "") != (got == "") || !strings.Contains(got, c.want) {