v1.2.1.7: переставлен порядок — сначала качаем все файлы релиза, потом проверяем установщик
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
KIT_VERSION="1.2.1.6" # версия сборки форка; должна совпадать с VERSION релиза
|
||||
KIT_VERSION="1.2.1.7" # версия сборки форка; должна совпадать с VERSION релиза
|
||||
GITEA="${KIT_FORK_BASE:-https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS}"
|
||||
NS="3x-ui-kit-release"
|
||||
SIG_ID="releases@3x-ui-kit"
|
||||
@@ -188,19 +188,19 @@ ssh-keygen -Y verify -f "$tmp/allowed_signers" -I "$SIG_ID" -n "$NS" -s "$tmp/SH
|
||||
|| die "подпись релиза v$KIT_VERSION не сошлась с ключом форка — это не наш релиз, ничего не запускаю"
|
||||
sum=$(awk '{f = $2; sub(/^\*/, "", f)} f == "scripts/3x-ui.sh" {print $1}' "$tmp/SHA256SUMS")
|
||||
[[ $(printf '%s' "$sum" | wc -c) -eq 64 ]] || die "в SHA256SUMS нет установщика — релиз собран неверно"
|
||||
got=$(sha256sum "$tmp/scripts/3x-ui.sh" | awk '{print $1}')
|
||||
[[ $got == "$sum" ]] || die "SHA256 установщика не совпал с подписанным — не запускаю"
|
||||
# Качаем все остальные файлы релиза и сверяем каждый с подписанным списком. Раньше брали только
|
||||
# установщик, поэтому kit-local.sh (в нём наша страница-заглушка) отсутствовал, и подготовка
|
||||
# заглушки до установщика падала с «kl_site_html: command not found».
|
||||
# Качаем ВСЕ файлы релиза и сверяем каждый с подписанным списком. Так у нас есть и scripts/3x-ui.sh
|
||||
# (установщик), и scripts/kit-local.sh (наша страница-заглушка), и всё остальное. Раньше брали только
|
||||
# установщик: заглушка не готовилась («kl_site_html: command not found»), а проверка целостности была неполной.
|
||||
while read -r sum2 name2; do
|
||||
case $sum2 in \#* | "") continue ;; esac
|
||||
[[ $name2 == scripts/3x-ui.sh ]] && continue
|
||||
case $name2 in SHA256SUMS | SHA256SUMS.sig) continue ;; esac
|
||||
mkdir -p "$tmp/$(dirname "$name2")"
|
||||
curl -fsSL --retry 3 -m 60 -o "$tmp/$name2" "$raw/$name2" || die "не скачался $name2 из $raw (Gitea доступна с сервера?)"
|
||||
got2=$(sha256sum "$tmp/$name2" | awk '{print $1}')
|
||||
[[ $got2 == "$sum2" ]] || die "SHA256 не совпал у $name2 — не запускаю"
|
||||
done <"$tmp/SHA256SUMS"
|
||||
got=$(sha256sum "$tmp/scripts/3x-ui.sh" | awk '{print $1}')
|
||||
[[ $got == "$sum" ]] || die "SHA256 установщика не совпал с подписанным — не запускаю"
|
||||
bash -n "$tmp/scripts/3x-ui.sh" || die "установщик не проходит проверку синтаксиса"
|
||||
[[ -r $tmp/scripts/kit-local.sh ]] || die "в релизе нет scripts/kit-local.sh — сборка неполная"
|
||||
printf ' ✓ подпись сошлась, SHA256 установщика совпал\n'
|
||||
|
||||
Reference in New Issue
Block a user